PHP сессия уничтожена / потеряна после заголовка - PullRequest
15 голосов
/ 10 января 2010

У меня есть скрипт, который устанавливает некоторые значения сеанса перед перенаправлением на / с использованием header().

Я прочитал много сообщений о том, что переменная $_SESSION уничтожается / теряется после header(), даже после того, как я реализовал это:

// set session here

session_regenerate_id(true);
session_write_close();
header("Location: /");

session_start() установлено в правильных местах, кто-нибудь знает что-нибудь, что я мог бы пропустить?

На странице index.php у меня есть это:

session_start();
print_r($_SESSION);

// outputs nothing :'(

Код довольно сложный, поэтому не будет публиковать все, только фрагменты.

Ответы [ 6 ]

11 голосов
/ 10 января 2010

Я никогда не видел проблем, связанных с сеансом, из-за использования заголовков местоположений - вы уверены, что звоните session_start на обеих страницах?


Хм ... этот ответ имел гораздо больше смысла, прежде чем вы добавили биты session_start выше и упомянули тот факт, что вы были уверены, что используете session_start. : -)

5 голосов
/ 10 января 2010

заголовок должен быть отправлен до закрытия сессии

session_regenerate_id(true);

header("Location: /");
// the header must be sent before session close
session_write_close(); // here you could also use exit();
4 голосов
/ 01 июля 2013

После перенаправления заголовка необходимо выйти из скрипта PHP:

header("Location: /");
exit();
4 голосов
/ 21 апреля 2010

просто поставь выход; после заголовка: D я решил этим

3 голосов
/ 17 марта 2010

В целях закрытия этого вопроса мы пришли к выводу, что это была проблема с конфигурацией сервера, что неудивительно, если учесть, что хост хорошо известен для подобных вещей.

0 голосов
/ 20 июня 2015

Вам не нужно запускать session_start () на каждой странице. Потому что пока ваш браузер не будет закрыт, тот же сеанс остается для всего пути, указанного в php.ini

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