Я использую PHP SDK для PHP, чтобы проверить, что пользователи оставляют комментарии, и это работает очень хорошо. После проверки, я сохраняю информацию пользователя в переменной сеанса, но сначала вызываю session_regenerate_id()
, а затем перезагружаю страницу. Когда страница перезагружается, старые данные сеанса по-прежнему доступны, включая переменную состояния SDK для Facebook, однако добавленная переменная сеанса недоступна. Ниже приведен фрагмент кода:Проблемы с session_regenerate_id()
session_regenerate_id();
$_SESSION[...] = ...;
header('Location: ...');
die();
Если я достаньте session_regenerate_id()
то все работает отлично. Любые идеи, что я делаю неправильно?
EDIT
Если я вхожу session_id()
каждую загрузку страницы, я вижу, что session_regenerate_id()
генерирует новый идентификатор и сеанс содержит все, что я ожидал. Однако, когда перезагрузка страницы происходит, идентификатор сеанса - это предыдущий идентификатор сеанса, а не новый, поэтому я не могу получить доступ к новым переменным сеанса. Почему это произойдет?
' Php session_start(); session_regenerate_id(); $ new_sessionid = session_id(); echo "Новая сессия: $ new_sessionid
"; print_r ($ _ SESSION); ?> ' –
Почему вы делаете' session_regenerate_id(); 'если у вас есть сеанс, используйте его – RiggsFolly
@ Я не делал этого, и все выглядит хорошо. Однако при повторном тестировании я заметил, что идентификатор сеанса, указанный после 'session_regenerate_id()', не совпадает, когда я перезагружаю страницу, которая по-прежнему является старой сессией. Итак, я думаю, вопрос возникает, почему не меняется идентификатор сеанса? – steveo225