session_destroy () после определенного количества времени в PHP

В настоящее время я сохраняю сеанс на странице формы:

$ testingvalue = "ТЕСТ СЕССИИ ";

$ _SESSION [»тестирование»] = $ testingvalue;

На другой странице я вызываю сессию, чтобы использовать значение:


Теперь я хочу использовать

session_destroy ();

уничтожить сессию. Но я хотел бы уничтожить сеанс через 2 часа.

Любая идея о том, как это сделать, а также где я должен это поставить?

У меня есть что-то вроде этого:

  $inactive)
{  
 session_destroy(); 
}

$_session['testing']=time();

    echo $_SESSION['testing']; //prints NOTHING?
    ?>

Будет ли это работать?

Если я неактивен более 2 часов, это должно быть пустым ?:

echo $ _SESSION ['тестирование»];

 user186461018 июн. 2013 г., 23:34
Примечание $ _session! == $ _SESSION
 Si818 июн. 2013 г., 23:33
Что я хочу сделать, так это если пользователь вернется на страницу через 2 часа, когда сеанс выигралничего не храни.
 Kris Roofe08 июл. 2017 г., 07:28
 Orangepill18 июн. 2013 г., 23:38
также настройка ini session.gc_maxlifetime = 7200
 user186461018 июн. 2013 г., 23:38
@SiKniB возможно, но комментарий//prints NOTHING? предполагает, что ты неНе знаю, почему он ничего не печатал. Теперь ты.
 Si818 июн. 2013 г., 23:35
@MikeW Спасибо за указание, но этотолько для примера.
 Orangepill18 июн. 2013 г., 23:33
использовать session_set_cookie_params (int $ life); для вашего примера время жизни будет 7200 секунд
 ducin18 июн. 2013 г., 23:29
сессии имеют то, что называетсяtimeout, Используйте команду destroy после выхода из системы - или когда вы хотите уничтожить сеанс вручную, другими словами - когда вы хотите уничтожить его до того, как истечет время его жизни.

Ответы на вопрос(2)

вам нужно статическое время начала, чтобы истечь.$session_life > $inactive всегда будет лучше, несмотря ни на что.

session_start();

$testingvalue = "SESSION TEST";
$_SESSION['testing'] = $testingvalue;

// 2 hours in seconds
$inactive = 7200;


$_SESSION['expire'] = time() + $inactive; // static expire


if(time() > $_SESSION['expire'])
{  
$_SESSION['testing'] = '';
 session_unset();
 session_destroy(); 
$_SESSION['testing'] = '2 hours expired'; // test message
}

echo $_SESSION['testing'];

или жесеанса Set-Cookie-PARAMS

Решение Вопроса

Как то так должно работать

<!--?php
// 2 hours in seconds
$inactive = 7200; 
ini_set('session.gc_maxlifetime', $inactive); // set the session max lifetime to 2 hours

session_start();

if (isset($_SESSION['testing']) && (time() - $_SESSION['testing'] --> $inactive)) {
    // last request was more than 2 hours ago
    session_unset();     // unset $_SESSION variable for this page
    session_destroy();   // destroy session data
}
$_SESSION['testing'] = time(); // Update session
 Rafael31 июл. 2015 г., 14:32
Могу ли я включить это, например, в функцию __construct класса Login.php? или я помещаю это на каждой странице, где сессия обязательна?
 Si818 июн. 2013 г., 23:53
Я добавил код и протестирую, и если он сработает, примет ваш ответ. Спасибо

Ваш ответ на вопрос