标题('Location:')不重定向

时间:2012-04-24 15:46:18

标签: php hosting hostmonster

我有一个登录页面,用于检查usernamepassword,如果用户提供的凭据与之匹配,则设置会话并重定向用户,它适用于我的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;
                }

请帮我找出我出错的地方

4 个答案:

答案 0 :(得分:2)

您需要确保在标头标记之前没有输出任何内容。由于之前的工作,我认为在调用标题之前你是echo'n的东西并不是错误,因为你看不到输出,我认为它输出的是空格。有些地方有些空格和/或不可见的字符可以潜入文件中:

将光标放在打开的PHP标记(<? or <?php)之前,然后点击退格键几次,然后点击删除删除<,然后重新键入<。这将确保在标题之前没有不可见的字符输出到浏览器。

然后浏览该文件包含的任何文件,并执行相同的操作,并删除文件末尾的任何?>。如果这些文件包含任何其他文件,请在其上重复此操作。

答案 1 :(得分:1)

如果您想使用header(),则不得在echo前添加任何内容。

答案 2 :(得分:1)

你在调用header()之前输出了什么吗?

如果是这样,将ob_start()放在脚本的开头或确保在调用header()之前没有回显任何内容

答案 3 :(得分:0)

在脚本的开头添加ob_start();,在脚本的末尾添加ob_end_flush();,以避免出现此问题。