Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP头重定向通过if语句_Php_Redirect_Http Headers - Fatal编程技术网

PHP头重定向通过if语句

PHP头重定向通过if语句,php,redirect,http-headers,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:

我有一些代码来记录尝试了多少次密码,如下所示:

<?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");
?>
但它总是继续运行,然后重定向到

header("location:/login.php");
如何让PHP在点击index.PHP重定向后立即重定向

我是否只是在index.php重定向之后设置一个布尔值,然后在login.php重定向上检查它


编辑:为了澄清,我已经定义了一个session_start();不用担心。

根据,调用
exit()是一种很好的做法header()后的code>

重定向仅在发送到客户端浏览器且浏览器启动新请求(终止当前请求)后生效。简单地调用header()不会启动重定向-脚本将一直运行,直到它正常退出、连接关闭、Web服务器关闭脚本,或者显式终止执行

如果希望重定向头立即生效,则需要终止脚本,这会导致刷新任何挂起的输出(包括重定向头):


首先,你的整个方法是有缺陷的。您不应该在登录失败时执行重定向,这可能会导致安全问题。您应该确保脚本在同一请求中包含正确的子页面


尽管从技术上讲,您的问题的答案是,如上所述,使用exit()。

您忘记启动会话了!!!!
在标题后使用exit或die(“location:/index.php”);不要继续剩下的

我知道,这就是为什么有待办事项,现在只是一个简短的总结
header("location:/login.php");
header("location:/index.php");
exit();
header("Location: ...");
exit();