Почему сессия PHP не сохраняет переменную между страницами? - PullRequest
0 голосов
/ 17 июня 2019

Я настраиваю админ-панель для веб-сайта, и все работало нормально на моем локальном (MAMP) сервере. Я загрузил сайт на сервер, и аутентификация пользователя больше не работает. Я могу добиться успеха с сервера, но когда я захожу на страницу, PHP не может найти необходимую переменную сеанса и, таким образом, перенаправляет пользователя обратно на страницу входа.

Я пробовал оба варианта PHP 5 и 7. Я попытался повторить переменную сеанса при проверке. Я попытался просто сохранить переменную на одной странице и прочитать ее на другой странице в той же папке, но она также не сработала.

page1.php

<?php
session_start();
$_SESSION["userid"] = 1;
?>
<a href="page2.php">To Page2</a>

page2.php

<?php
session_start();
if (!isset($_SESSION["userid"])) {
    header("Location: page1.php");
    die();
}

echo $_SESSION["userid"];

После того, как я щелкну ссылку в page1.php, page2.php снова перенаправит меня на page1.php без каких-либо ошибок.

1 Ответ

0 голосов
/ 17 июня 2019

Использует ли ваш сайт какой-либо балансировщик нагрузки?

По умолчанию PHP создает сеанс в памяти сервера. Таким образом, если ваш веб-сайт использует разные серверы для каждого запроса, установленные значения $ _SESSION теряются. В этом случае хорошим решением может быть сохранение сеансов вне сервера, возможно, в Redis или Memcached.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...