我有一个登录页面,用于检查username
和password
,如果用户提供的凭据与之匹配,则设置会话并重定向用户,它适用于我的godadd
托管帐户,但现在我已经转移我的托管,突然它已停止工作,以下是代码
if (count($result) > 0)
{
$row= mysql_fetch_array($result);
$userID = $row['userID'];
$firstName = $row['FirstName'];
$isActive = $row['IsActive'];
if ($isActive == '1')
{
$_SESSION['user'] = $firstName;
//var_dump($firstName); //it gives me the right username
//echo" - here"; //this also gets echoed
header("Location: http://google.com/"); //it just dies silently
exit;
}
请帮我找出我出错的地方
答案 0 :(得分:2)
您需要确保在标头标记之前没有输出任何内容。由于之前的工作,我认为在调用标题之前你是echo'n的东西并不是错误,因为你看不到输出,我认为它输出的是空格。有些地方有些空格和/或不可见的字符可以潜入文件中:
将光标放在打开的PHP标记(<? or <?php
)之前,然后点击退格键几次,然后点击删除删除<
,然后重新键入<
。这将确保在标题之前没有不可见的字符输出到浏览器。
然后浏览该文件包含的任何文件,并执行相同的操作,并删除文件末尾的任何?>
。如果这些文件包含任何其他文件,请在其上重复此操作。
答案 1 :(得分:1)
如果您想使用header()
,则不得在echo
前添加任何内容。
答案 2 :(得分:1)
你在调用header()之前输出了什么吗?
如果是这样,将ob_start()放在脚本的开头或确保在调用header()之前没有回显任何内容
答案 3 :(得分:0)
在脚本的开头添加ob_start();
,在脚本的末尾添加ob_end_flush();
,以避免出现此问题。