#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’] не установлен или где-то потерян… Есть идеи?