у меня есть 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-кодов.
и индекс .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(); или умереть(); после заголовков, но ничего не получилось
Большое спасибо!!! наконец-то сработало!!






Поскольку вы включили login.php в index.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;
}
?>
я удалил команду включения, и это сработало
Login.php перенаправляет на index.php при успешном входе в систему, который, в свою очередь, включает в себя login.php, который затем навсегда перенаправляет на index.php. Перенаправление в вашем последнем предложении
else, вероятно, не нужно.