Не удается заставить сеансы работать должным образом

#php #session

#php #сессия

Вопрос:

Я пытаюсь контролировать, запущен ли сеанс, и выполняю перенаправления в соответствии с ним, а также проверяю время сеанса, если срок его перенаправления истек, если нет — продолжайте.

У меня есть две страницы:

на одной странице, где пользователь изначально вводит сеанс, еще не установлен, у меня есть этот код:

 session_start(); 
$_SESSION['timeout'] = time(); 
header('Location: index.php');
  

на второй странице у меня есть это:

 $inactive = 600;
if(isset($_SESSION['timeout']) ) {
    $session_life = time() - $_SESSION['timeout'];
    if($session_life > $inactive)
        { session_destroy(); header("Location: intro.php"); }
} 
else { header("Location: intro.php"); }
  

это все равно приводит меня к первой странице (intro.php )

Что не так с моим кодом здесь?

и, кстати … вместо перенаправления, когда $session_life > $неактивный, я бы хотел обновить сеанс, чтобы этот сеанс никогда не истекал. Какие-нибудь советы?

Ответ №1:

Вы должны вызывать session_start() каждую страницу, на которой планируете использовать сеансы.

Так что просто добавьте a session_start() на свою вторую страницу (не забудьте сделать это перед повторением любого вывода), и все должно быть в порядке.

Комментарии:

1. — Я добавил session_start() на второй странице, но это не сработало. Затем я проверил на второй странице, установлен ли сеанс [‘timeout’], я хочу повторить что-то, оно не повторяется. так что, возможно, sessionp[‘timeout’] не установлен или где-то потерян… Есть идеи?