我是 php 新手,正在尝试建立一个网站。如果他闲置了一段时间,我想注销用户 session 。我在网上搜索,但找不到正确的代码。你如何在 php 中检查用户是否空闲?任何人都可以请帮助我。
最佳答案
有几种方法可以做到这一点。这里有一对...
我会选择第二个选项,因为很难在 PHP 中设置正确的值以使 session 安全地过期,以及您想要的方式。使用第二个选项,您所要做的就是确保 session 不会在您希望之前过期,这更容易。
选项 2 的代码示例:
//on pageload
session_start();
$idletime=60;//after 60 seconds the user gets logged out
if (time()-$_SESSION['timestamp']>$idletime){
session_destroy();
session_unset();
}else{
$_SESSION['timestamp']=time();
}
//on session creation
$_SESSION['timestamp']=time();
编辑:
您的评论说明您实际上希望在客户端跟踪鼠标事件和其他事情,以确定用户是否空闲。这个比较复杂。我会给出一个通用的解决方案,然后提供一些优化和改进的建议。
要完成您所描述的内容,您必须 跟踪客户端事件 (鼠标移动、键盘敲击等)并 在服务器端 处理该信息。
跟踪客户端事件 将需要 javascript 事件处理程序。您应该为每个要算作“非空闲”的操作创建一个事件处理程序,并跟踪(在 javascript 变量中)它们上次空闲的时间。
在服务器端处理该信息 将要求您使用 ajax 将它们上次空闲的时间发送到服务器。因此,每隔几秒钟,您应该向服务器发送一个更新(使用 javascript),指定用户空闲的时间。
一些额外的建议:
关于php - 如果用户在 php 中空闲,如何注销 session ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3453831/