0

当我在 localhost 中运行以下代码时,它可以工作,但是当我在线托管它时,它会出错。

if(isset($_POST['congressman'])){
    $congressman = $_POST['congressman'];
    $no_of_votes = mysql_result(mysql_query("SELECT no_of_votes FROM `tbcandidates` WHERE `identification_no`=$congressman"),0) + 1;
    $query=mysql_query("UPDATE tbcandidates SET no_of_votes = '$no_of_votes' WHERE identification_no = $congressman");

这一行:

no_of_votes = mysql_result(mysql_query("SELECT no_of_votes FROM `tbcandidates` WHERE `identification_no`=$congressman"),0) + 1;

它说 mysql_result(): 提供的参数不是有效的 MySQL 结果资源等。

4

3 回答 3

3

尝试 ob_start()在代码顶部和ob_flush()末尾添加

于 2012-09-27T05:39:41.217 回答
0

标头已经发送只是意味着在您调用该标头()指令之前已经有一个数据输出......

因此,您要询问它在 localhost 上运行而服务器拒绝运行它的原因:严格模式和错误处理 - 在您的 webhosts 服务器上,设置可能更严格,因此不会像在 localhost 上那样忽略错误

搜索标题之前的任何输出并将其删除。

于 2012-09-27T05:46:29.463 回答
0

head您需要在函数之前找出输出。它可能是一些 html 内容,可能是 bom 头,或者可能是一些其他警告消息。

快速修复是将代码放在脚本的顶部。

<?php

if ($_POST['user']=="admin" && $_POST['pass']=="password"){
  header('Location: adminview.php');
  exit;
}
于 2012-09-27T05:46:39.663 回答