PHP Header 重定向通过 if 语句

标签 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");
?>

我知道它最多数到五然后停止因为我通过在 login.php 上回显 $_SESSION['error'] 来测试它

PHP 在命中时从不重定向
header("location:/index.php");

但它总是继续前进,然后重定向到
header("location:/login.php");

如何让 PHP 在遇到 index.php 重定向后立即重定向?

我只是在 index.php 重定向之后设置一个 bool 值并在 login.php 重定向上检查它吗?

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

最佳答案

header("location:/index.php");
exit();

关于PHP Header 重定向通过 if 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7178976/

相关文章:

php - 显示mysql结果不同输入的总和

PHP 语法 $ {"{$type}_method"}

.htaccess - 301 将所有丑陋的永久链接从旧站点重定向到新站点

java - 如何判断一个请求是Ajax还是Normal?

php - 如何使用 fpdf 导出变量数据

php - Centos 7 用php7.1 安装MongoDB 驱动

javascript - 内容安全策略 (CSP) 如何工作?

javascript - 使用 JSONP 时是否可以使用 jQuery 设置请求 header 值?

apache - Htaccess URL 重定向适用于 http 而不是所有 https

node.js 集群,将子级标准输出重定向到文件中断数据