PHP:登录不重定向

时间:2011-08-29 20:38:50

标签: php redirect login header

好的,基本上,我一直在尝试这个,现在是一小时或两小时。 当用户登录我的网页时,他们似乎没有被重定向到user.php。 他们只看到一个小空盒子,仍然在index.php。

我的表格是:

 <form id="login" method="POST" autocomplete="off" action="<?php echo $_SERVER['PHP_SELF'];?>">

然后在用户成功登录时会执行代码:

if ($username == $dbusername && md5($password) == $dbpassword)
{                  
  //You're in!
  $_SESSION['username'] = $username;

  header("Location:user.php");      
}
else die blablabla

但用户似乎仍未被重定向。

我该怎么办?

4 个答案:

答案 0 :(得分:1)

首先,$_SERVER["PHP_SELF"]对XSS很敏感,所以请远离它。

在header语句之后放置一个die()语句(它应该只使用绝对URI,而不是像你那样使用相对的URI)。

答案 1 :(得分:0)

尝试改变这个......

if ($username == $dbusername && md5($password) == $dbpassword)
{                  
   //You're in!
    $_SESSION['username'] = $username;

     header('Location:/user.php');   
     exit();
 }
  else die blablabla

也总是使用exit();在标题重定向之后

答案 2 :(得分:0)

如果标头标签不适合您,也许您可​​以尝试使用零等待时间的html元替换(http://www.w3schools.com/html/html_meta.asp)。如果您使用此方法,请不要忘记将链接放置到您要重定向的页面,如果重定向没有发生。

答案 3 :(得分:0)

您尝试过不同的浏览器吗?我听说过Chrome的需求     标题(“状态:200”);

避免使用$ _SERVER ['PHP_SELF'](安全风险)并使用SHA256而不是MD5(也要考虑盐)。

您是否尝试过检查是否符合“if条件”? 还可以尝试在标题中使用完整的网址,看看是否有任何区别。