我正在使用此脚本登录用户,我想知道我是否可以添加一个简单的cookie,它将在30分钟不活动后自动注销用户。
...
if($count){
session_start();
session_regenerate_id();
$_SESSION['SESS_USERNAME'] = $myusername;
$_SESSION['SESS_PASSWORD'] = $mypassword;
session_write_close();
header("location: login_success.php");
}
连接到:
<?php
session_start();
if(!isset($_SESSION['SESS_USERNAME']) || !isset($_SESSION['SESS_PASSWORD']) || (trim($_SESSION['SESS_USERNAME']) == '')) {
//someone's not logged in
header("location: index.php"); //it's suppose to actually be there
exit();
}
?>
然后结束会话:
<?php
session_start();
session_destroy();
?>
这可能吗?这个脚本不在网上,因为我对PHP的了解不多,所以如果它很难我也不会打扰!
谢谢你的时间!
答案 0 :(得分:1)
您可以在脚本顶部发出以下命令来设置超时:
ini_set('session.gc_maxlifetime', 30*60); // for 30 min timeout
有关详细信息,请参阅manual page。在这段时间之后,PHP将自动垃圾收集会话。
答案 1 :(得分:0)
会话会在一段时间后自动过期 - 这会导致您的非活动用户退出。
在此期间,请参阅session.gc_maxlifetime
指令:您需要将其设置为1800秒。
这可以在您的php.ini
文件中完成,用于服务器范围的配置,或使用以下代码行:
ini_set('session.gc_maxlifetime', 1800);
答案 2 :(得分:0)
$_SESSION['expiry'] = time() + 30 * 60;
if ($_SESSION['expiry'] < time()) {
session_destroy();
}