Я избиваю свою голову над этим. Мой код практически идентичен другим проектам, в которых это работает. Вот как я это делаю:Сессия не поддерживается после перенаправления страницы
session_start();
set_up_session($username);
redirect_to('index.php');
И две функции:
function redirect_to($location=null) {
if($location!=null) {
header("Location: {$location}");
exit;
}
}
function set_up_session($username) {
session_start();
$_SESSION['user_id']=$id;
$_SESSION['logged_in']=true;
$_SESSION['username']=$username;
}
если я закомментируйте редирект и эхо любой из $_SESSION
вар-х, вар правильно читает. Но после перенаправления сессия заканчивается.
Это то, что находится на следующей странице.
<?php if (!isset($_SESSION['logged_in'])) { ?>
// do stuff <-- this is what gets shown showing session is no longer active
<?php } else { ?>
<p>Hi, <?php echo $_SESSION['username']; ?></p>
<?php } ?>
Это не так, это нормально. Если вы хотите, чтобы страница распознавала сеанс, вам также нужно сделать эту страницу частью сеанса. Я отредактировал свой ответ, чтобы остановить вашу ошибку. – Vector
Я исправил ошибку заголовка; но что, если я не хочу, чтобы сеанс был запущен для гостевого пользователя? (или это ничего не навредит, если не заданы параметры var) – KickingLettuce
Гость не будет частью сессии, если они не получили переменные сеанса через систему входа и т. д. – Vector