我目前正在表单页面中保存会话:
$ testingvalue =“SESSION TEST”;
$ _ SESSION ['testing'] = $ testingvalue;
在另一个页面上,我调用会话来使用值:
<?php
session_start(); // make sure there is a session
echo $_SESSION['testing']; //prints SESSION TEST???
?>
现在我想使用
session_destroy();
销毁会话。但我想做的是在经过2小时后破坏会议。
关于如何做到这一点以及我应该把它放在哪里?
我有这样的事情:
<?php
session_start();
// 2 hours in seconds
$inactive = 7200;
$session_life = time() - $_session['testing'];
if($session_life > $inactive)
{
session_destroy();
}
$_session['testing']=time();
echo $_SESSION['testing']; //prints NOTHING?
?>
这会起作用吗?
如果我不活动超过2小时,这应该是空白的?:
echo $ _SESSION ['testing'];
答案 0 :(得分:6)
这样的事情应该有效
<?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
答案 1 :(得分:1)
你需要一个静态的开始时间到期。无论如何,$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'];