好的,基本上,我一直在尝试这个,现在是一小时或两小时。 当用户登录我的网页时,他们似乎没有被重定向到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
但用户似乎仍未被重定向。
我该怎么办?
答案 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条件”? 还可以尝试在标题中使用完整的网址,看看是否有任何区别。