PHP $ _SESSION пусто после перенаправления заголовка - PullRequest
3 голосов
/ 21 февраля 2011

Я теряю данные в $ _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");
...

Куда ушел мой сеанс?

Ответы [ 3 ]

7 голосов
/ 21 февраля 2011

Убедитесь, что вы используете функцию session_start(); перед оператором if в myaccount.php

1 голос
/ 04 октября 2013

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

1 голос
/ 21 февраля 2011

Вы должны вызывать session_start() на каждой доступной странице (то есть читать или писать) $_SESSION и вызывать ее перед любым доступом к массиву сеансов. Поэтому обязательно звоните session_start() на обеих страницах.

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