登录后重定向到另一个页面

时间:2011-09-20 19:44:36

标签: php

我正在研究如何通过起诉header()函数重定向到另一个页面,但它不起作用,并给我一个错误消息说帽子:无法修改标题信息 - 已经发送的标题......任何人非常感谢,非常感谢。 这是我的PHP代码

 if(isset($_POST['email'])){
    $email = $_POST['email'];
    $pass = $_POST['pass'];
     $query = "select email, password from member where email = '$email' and   password='$pass'";
     if(mysql_num_rows(queryMysql($query)) == 0)
{
   echo "Email/Password invalid<br/>";
}
else
{
    $query1 ="select uniid from member where email = '$email' and password ='$pass'";
     $result1 = queryMysql($query1);
      $row1 = mysql_fetch_object($result1);
      $uniid = $row1->uniid; 
       $_SESSION['uniid'] = $uniid;

       header("Location:View.php?view=$uniid");
   }
     }

6 个答案:

答案 0 :(得分:3)

标题必须在发送之前发送。将标题重新定位在代码的顶部,它应该可以正常工作。

答案 1 :(得分:1)

考虑使用ob_start()启动代码。这会关闭输出缓冲,简而言之,您可以在任何地方使用header()setcookie()

答案 2 :(得分:0)

在调用header()之前,你不能有任何输出(甚至没有空格)。

您可以搜索输出的任何机会,或者您可以在脚本的第一行开始输出缓冲。这将导致输出被缓冲,直到脚本结束或显式调用ob_flush()(或类似函数)。见ob_start()

答案 3 :(得分:0)

标头必须在程序的任何输出之前。因此,如果您在标题修改之前回显任何,您将收到该错误。如果您不想重新排列代码,可以使用输出缓冲来延迟其他输出,直到发送标头。

请参阅:
http://us2.php.net/manual/en/function.header.php
http://us2.php.net/manual/en/function.ob-start.php
http://us2.php.net/manual/en/function.ob-end-flush.php

答案 4 :(得分:0)

导致此问题的最常见原因是,在您发送标头之前,某处某处正在向stdout打印内容。您可以使用ob_start作为Kolink说,或者您可以在php.ini中打开全局输出缓冲区,这将允许PHP首先自动发送标头输出。

答案 5 :(得分:0)

确保PHP文件中没有空格,特别是在打开PHP标记之前。这计为文本输出,在发送标题之前不会发生。