Joe*_*ley 2 php redirect http-headers
我有一些代码来记录尝试了多少密码尝试,如下所示:
<?php
/* Access denied */
$_SESSION['error'] = "invalidlogin";
if (isset($_SESSION['tries']))
{
if ($_SESSION['tries'] == 5)
{
//TODO: Redirect somewhere nicer and more descriptive
header("location:/index.php");
}
else
{
$_SESSION['tries']++;
}
}
else
{
$_SESSION['tries'] = 0;
}
header("location:/login.php");
?>
Run Code Online (Sandbox Code Playgroud)
我知道这是数到五,然后停止因为我在测试的login.php它呼应$ _SESSION ["错误"]
PHP在点击时永远不会重定向
header("location:/index.php");
Run Code Online (Sandbox Code Playgroud)
但它总是继续前进,然后重定向到
header("location:/login.php");
Run Code Online (Sandbox Code Playgroud)
一旦它到达index.php重定向,我怎样才能让PHP重定向?
我只是在index.php重定向后设置一个布尔值并在login.php重定向上检查它吗?
编辑:为了澄清,我已经定义了session_start(); 别担心.
重定向仅在发送到客户端浏览器并且浏览器发起新请求(终止当前请求)后才生效。简单地调用 header() 不会启动重定向 - 您的脚本将继续运行,直到它正常退出,连接关闭并且网络服务器关闭脚本,或者您明确终止执行。
如果您希望重定向标头立即生效,则需要终止脚本,这会导致刷新任何挂起的输出(包括重定向标头):
header("Location: ...");
exit();
Run Code Online (Sandbox Code Playgroud)