Я теряю данные в $ _SESSION, когда я перенаправляю заголовок. Когда я просматриваю это с помощью отладчика, я могу видеть все свои данные в $ _SESSION до выхода ();
Login.php:
... if($result == 1){ header("Location: /myaccount.php"); session_write_close(); exit(); } else { header("Location: /login.php?invalid=yes"); exit(); }
Затем я поставил точку останова после условия session_start () ниже и $ _SESSION полностью пуст.
myaccount.php:
<?php if(!isset($_SESSION['user_id'])) { session_start(); } $docRoot = getenv("DOCUMENT_ROOT"); ...
Куда прошла моя сессия?
Убедитесь, что вы используете функцию session_start();
перед if-statement на myaccount.php
Вы должны вызывать session_start()
на каждой странице, которая получает доступ (то есть чтение или запись) $_SESSION
, и вызывать ее перед любым доступом к массиву сеансов. Поэтому обязательно вызывайте session_start()
на обеих страницах.
Да, не удаляйте почту … У меня была ТОЧНАЯ та же проблема, и этот пост заставил меня невольно прижать ладонь к лбу. И это исправило проблему (с моим кодом, а не с моей немой). Ура!