为什么这个.php文件错误我'err_too_many_redirects'?

wfypjpf4  于 2023-06-28  发布在  PHP
关注(0)|答案(1)|浏览(106)

我有一个php代码,但当我运行它在xampp本地主机它错误err_too_many_redirects.下面是代码:
login.php,当一个用户到来时:

<?php
session_start();

<The php codes that checks from mysql...>

if (!isset($_SESSION['ip_allowed'])) {
    if ($count === 1) {
        $_SESSION['ip_allowed'] = true;
        header('Location: index.php');
        exit;
    } else {
        header('Location: access_denied.html');
        exit;
    }
} else {
    header('Location: index.php');
    exit;
}
?>

access_denied.html是不是一个重要的文件,因为它是一个正常的html文件没有php代码
和index.php

<?php
session_start();
include 'login.php';

if (!isset($_SESSION['ip_allowed'])) {
    header('Location: access_denied.html');
    exit;
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Welcome!</title>
</head>
<body>
    <h1>
        Your IP Is Allowed!✅
    </h1>
    <a href="login.php">
        Back To Login
    </a>
</body>
</html>

但当如果我login.php和它允许我的ip然后它重定向我到index.php和index.php中我编码的代码,检查它是否有像$_SERVER ['ip_allowed']的要求,如果没有它重定向到access_denied.html
希望有人能帮帮我!.谢谢!
我确实尝试过更改session_start()的行并添加exit(); or die();在header之后但没有任何工作

8hhllhi2

8hhllhi21#

因为你在index.php中包含了login.php,所以它会永远重定向到你的索引。
试试这个:

<?php
session_start();

$page = substr($_SERVER["SCRIPT_NAME"],strrpos($_SERVER["SCRIPT_NAME"],"/")+1);  

<The php codes that checks from mysql...>

if (!isset($_SESSION['ip_allowed'])) {
    if ($count === 1 && $page !== "index.php") {
        $_SESSION['ip_allowed'] = true;
        header('Location: index.php');
        exit;
    } else {
        header('Location: access_denied.html');
        exit;
    }
} else {
    header('Location: index.php');
    exit;
}
?>

相关问题