Я создал скрипт login.php
и там я создал переменную сеанса с именем logged_in
$_SESSION['logged_in'] = true;
Я не могу определить способ перенаправления перенаправления на мой logout.php после окончания сеанса из-за неактивности. Также следует поместить код, истекающий эту переменную сеанса. У меня есть ошибка в Googled, и то, что она предлагает, это настроить файл php.ini
в большинстве статей. Однако я наткнулся на статью, в которой говорится, что это не лучшая практика.
Я нашел следующий код в StackOverflow, но я понятия не имею, куда его поместить: –
<?php if ($_SESSION['timeout'] + 10 * 60 < time()) { // session timed out } else { // session ok } ?>
Я хотел бы знать, как лучше всего перенаправить после истечения срока действия сеанса и предложения о том, где разместить код.
Изменить: я забыл упомянуть, что хочу знать, как вручную установить время окончания сеанса.
заранее спасибо
Если вы хотите выйти из системы, если они попытаются загрузить страницу, если они слишком долго неактивны, вы должны поместить этот код в начало каждого файла php (перед любыми другими тегами html):
if( $_SESSION['last_activity'] < time()-$_SESSION['expire_time'] ) { //have we expired? //redirect to logout.php header('Location: http://yoursite.com/logout.php'); //change yoursite.com to the name of you site!! } else{ //if we haven't expired: $_SESSION['last_activity'] = time(); //this was the moment of last activity. }
Кроме того, поставьте этот код в верхней части страницы, где вы приземлитесь, когда вы успешно вошли в систему:
$_SESSION['logged_in'] = true; //set you've logged in $_SESSION['last_activity'] = time(); //your last activity was now, having logged in. $_SESSION['expire_time'] = 3*60*60; //expire time in seconds: three hours (you must change this)
На этой странице вам не нужно включать код проверки, который я вам дал в первую очередь.
Кстати, не забудьте правильно добавить теги <?php
!
Реализуйте эту идею:
$expire_time = 3*60*60; //expire time if( $_SESSION['last_activity'] < time()-$expire_time ) { echo 'session expired'; die(); } else { $_SESSION['last_activity'] = time(); // you have to add this line when logged in also; echo 'you are uptodate'; }