PHP $ _SESSION пуст после перенаправления заголовка

Я теряю данные в $ _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() на обеих страницах.

Да, не удаляйте почту … У меня была ТОЧНАЯ та же проблема, и этот пост заставил меня невольно прижать ладонь к лбу. И это исправило проблему (с моим кодом, а не с моей немой). Ура!