我需要保持一个会话存活30分钟,然后销毁它。
当前回答
在这里你可以设定时间
$lifespan = 1800;
ini_set('session.gc_maxlifetime', $lifespan); //default life time
其他回答
if (isSet($_SESSION['started'])){
if((mktime() - $_SESSION['started'] - 60*30) > 0){
//Logout, destroy session, etc.
}
}
else {
$_SESSION['started'] = mktime();
}
这是为了在设定的时间后注销用户吗?在注册会话时设置会话创建时间(或过期时间),然后检查每个页面上的加载是否可以处理该时间。
例如:
$_SESSION['example'] = array('foo' => 'bar', 'registered' => time());
// later
if ((time() - $_SESSION['example']['registered']) > (60 * 30)) {
unset($_SESSION['example']);
}
编辑:我有一种感觉,你指的是别的东西。
您可以通过使用会话在一定的生命周期后废弃会话。Gc_maxlifetime ini设置:
编辑: ini_set(’session。gc_maxlifetime’60 * 30);
使用session_set_cookie_params函数来做到这一点。
有必要在session_start()调用之前调用这个函数。
试试这个:
$lifetime = strtotime('+30 minutes', 0);
session_set_cookie_params($lifetime);
session_start();
详见:http://php.net/manual/function.session-set-cookie-params.php
PHP是如何处理会话的,初学者很难理解。这可能会帮助他们概述会话的工作原理: 会话如何工作(自定义会话处理程序)
在这里你可以设定时间
$lifespan = 1800;
ini_set('session.gc_maxlifetime', $lifespan); //default life time
推荐文章
- 在PHP中插入MySQL时转义单引号
- PHP有代码混淆器吗?
- 跨源请求头(CORS)与PHP头
- PHP sprintf转义%
- 如何看到PHP加载的扩展?
- 如何使用Laravel和Eloquent查询两个日期之间?
- 从Laravel 5中的另一个控制器访问控制器方法
- 使用类型提示时不能传递空参数
- PHP是空时为空?
- 什么是自动装填;你如何使用spl_autoload, __autoload_register ?
- 将查询字符串解析为数组
- 在PHP中::(双冒号)和->(箭头)之间的区别是什么?
- 从SimpleXMLElement对象中获取值
- 如何从PHP数组中删除重复的值
- 使用PHP获取客户端IP地址