运行代码时,我仍然遇到错误。这是我的代码。我删除了所有的空格。我的html上的my表单转到我的php(action =“lib / login.php”)文件来检查用户是否存在。如果存在,则重定向。 dbconnect.php只是连接到我的数据库。有人可以帮忙吗?
文件夹布局:
LIB
-dbconnect.php
-login.php(代码位于下方)
的index.html
<?php
require_once("dbconnect.php");
$loginuser = $_POST['username'];
$loginpw = $_POST['password'];
$usertable = "Users";
$users="Username";
$pw="Password";
$query = "SELECT $users, $pw FROM $usertable WHERE $users='$loginuser' AND $pw='$loginpw'";
$result = mysql_query($query);
$num_rows = mysql_num_rows($result);
if (!$result) {
die('Invalid query: ' . mysql_error());
}
if ($num_rows>0) {
header("Location:../index.html");
exit();
}
&GT?;
答案 0 :(得分:0)
如果您在输入后尝试发送HTTP标头,则会显示此消息。这是因为在HTTP中首先是头部,然后是主体。当输出进入正文时,输出后不再发送标题。
由于代码中没有echo
,print
或任何输出函数,因此可以通过
<?php
至1:
ob_*
函数集是捕获所有输出脚本的好方法,无论这是错误消息还是常规输出。所以你可以添加一行:
ob_start();
在打开<?php
标记后指示。
然后在致电header()
之前添加:
if(ob_get_size() > 0) {
// there was an error, display it and exit
ob_end_flush();
die();
}
请注意,在生产环境中,您应该完全禁用错误消息的显示,因为它们可能包含敏感信息。您可以通过php.ini中的settings_errors设置为0或每个脚本:
ini_set('display_errors', 0);
到2:
假设你发布的代码是php文件的完整内容(<?php
之前没有空格或空行),那么你可能会遇到UTF-8 BOM char的问题。 BOM表示字节顺序标记,由utf-8编码在内部使用。它在文本编辑器中不可见。 :)
要删除它,有几个解决方案..将谷歌一个给你..... http://www.w3.org/International/questions/qa-byte-order-mark.en.php