如何设置一定时间来销毁会话?有人能告诉我10分钟后破坏会话的正确方法吗?这是我的代码:
会话授权:
session_start();
if(!isset($_SESSION['SESS_MEMBER_ID']) || (trim($_SESSION['SESS_MEMBER_ID']) == '')) {
header("location: index.php");
exit();
}
会话注销:
session_start();
unset($_SESSION['SESS_MEMBER_ID']);
unset($_SESSION['SESS_FIRST_NAME']);
unset($_SESSION['SESS_LAST_NAME']);
header("location: index.php");
会话登录:
if($result) {
if(mysql_num_rows($result) == 1) {
//Login Successful
session_regenerate_id();
$member = mysql_fetch_assoc($result);
$_SESSION['SESS_MEMBER_ID'] = $member['id'];
$_SESSION['SESS_USER_ID'] = $member['username'];
$_SESSION['SESS_FIRST_NAME'] = $member['first_name'];
$_SESSION['SESS_LAST_NAME'] = $member['last_name'];
$_SESSION['SESS_USER_TYPE'] = $member['acc_type'];
session_write_close();
header("location: user_profile.php");
exit();
} else {
header("location: loginerr.php");
exit();
}
} else {
die("Query failed");
}
答案 0 :(得分:1)
你不能,除非你推出自己的会话处理系统。默认会话清理系统是随机运行的。每次调用调用session_start()
的PHP脚本都有可能触发垃圾收集器。
当GC启动时,它基本上会遍历会话存储目录,并查找任何未在超过默认有效期内访问的文件,并删除任何“陈旧”的文件。
根据定义,如果使用会话(例如调用session_start()
并且加载了特定的会话文件),那么它就不会陈旧,也不会被删除。
您需要一个外部系统来安排删除,例如使用at
调度程序。