我需要一种在10分钟不活动后自动注销用户的方法。这包括他们离开浏览器的时间。
我将此代码用于需要登录的所有页面:
function CheckLogin()
{
if(!isset($_SESSION))
{
session_start();
}
$sessionvar = $this->GetLoginSessionVar();
if(empty($_SESSION[$sessionvar]))
{
return false;
}
return true;
}
此外,我以前做过的方法是需要一个人回到主页,然后他们会自动注销。是否有可能他们不需要返回页面?
答案 0 :(得分:4)
是。 session.gc_maxlifetime
正是您所寻找的:
ini_set('session.gc_maxlifetime', 600);
http://www.php.net/manual/en/session.configuration.php#ini.session.gc-maxlifetime
答案 1 :(得分:1)
实现超时有两种方法。一个来自服务器端,另一个来自客户端。可以说服务器端实现更重要,因为客户端功能只提供更愉快的用户体验,并且实际上并不与应用程序的身份验证进行交互。
服务器端
您需要一个登录检查功能,以确保用户已登录。您在问题中提到过伪功能,所以我只是从那里扩展。
function CheckLogin()
{
// Is the user logged in?
if(session does not exist)
{
// redirect
// redirect or return false
}
else
{
if(session is valid)
{
// user is logged in
// redirect or return true
}
else
{
// redirect or return false
}
}
}
客户端
你需要jquery,并且插件Jim链接到http://www.erichynds.com/jquery/a-new-and-improved-jquery-idle-timeout-plugin/。创建并链接到Javascript文件并将其包含在网站范围内。请按照插件链接中的文档进行操作。这是相当彻底的。
设置与会话相关的任何cookie(如果有的话)在10分钟后超时也符合您的最佳利益。
答案 2 :(得分:0)
还有一个名为空闲超时的JQuery插件,效果很好。设置两个或三个参数,包括超时时发送人员的位置。这是链接http://www.erichynds.com/jquery/a-new-and-improved-jquery-idle-timeout-plugin/