这是代码:
if($rowCheck>0) {
session_start();
while($row = mysql_fetch_assoc($check)) {
$_SESSION['developer'] = $row;
}
header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
}
else
echo 'Invalid Password or Email!';
除header
外,一切正常,如果我在echo
之后写header
,它将正常工作。此外,如果我打印location
,它会向我显示确切的location
。
我在mamp和macos上运行。所以它在本地主机上。
任何帮助?
答案 0 :(得分:1)
正如斯科特所说,你需要在标题后面的exit()或die()。
另外,检查在打开和关闭php标记之前或之后没有空格,如下所示:
<?php
这将导致标头功能失败,因为它被视为输入。还应检查任何相关的包含文件。
答案 1 :(得分:0)
只需评论所有内容并粘贴在正确的开头header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
,然后查看它是否正常工作。如果没有,请检查BOM编码。
答案 2 :(得分:0)
在标题行后添加exit()或die()。头函数不会停止执行脚本的其余部分。
答案 3 :(得分:0)
夫妻俩。
首先,我会在PHP代码中将ini_set("display_errors", 1);
放在页面的最顶层。您可能会收到“已发送标头”错误。
在标题后添加一个退出以防止脚本继续下去:
header("Location: http://".$_SERVER['SERVER_NAME']."/index.php");
exit;
最后这一点没有意义。
while($row = mysql_fetch_assoc($check)) {
$_SESSION['developer'] = $row;
}
您正在设置该会话变量一次,因此您不需要while。您还将其设置为等于mysql资源(您可能打算这样做),但也许您只需要一个列
$row = mysql_fetch_assoc($check);
$_SESSION['developer'] = $row['username'];