gpt4 book ai didi

php - 使用 PHP 注销非事件用户

转载 作者:行者123 更新时间:2023-11-28 23:59:01 25 4
gpt4 key购买 nike

我试图在设定的时间后让用户退出我的 CMS。不活动我的意思是没有点击鼠标或在键盘上打字。因此,在 30 分钟不活动后,我的注销功能运行了。

我正在使用的 CMS 中已经内置了注销功能 -

<?php
session_start();
if (isset($_SESSION['user_id'])){
$login = 1;
}else{
$login = 0;
}

function confirm_logged_in() {
if (!isset($_SESSION['user_id'])) {
//redirect
header("Location: /_cms/login.php?login=0");
}
}
function logout(){
$_SESSION = array();
if(isset($_COOKIE[session_name()])){
setcookie(session_name(), '', time()-4200, '/');
}
session_destroy();
}

?>

其他人编写了这段代码并且它有效。但是我不知道注销非事件用户所需的确切时间。预设时间是 - 4200。我想知道注销需要多长时间,以及是否可以将其更改为我想要的任何时间。任何人都可以建议吗?

最佳答案

-4200 只是为了销毁 cookie。通过为它们设置过去的时间来销毁 Cookie。所以向后设置 4200 秒与向后设置 1 秒一样有效。

注销用户有多种方法。你可以有一个你自己的 cookie 设置上次事件时间(每次用户访问页面时设置时间)。在每个脚本的开头包含一个获取此 cookie 并检查应包含最后事件时间的值的函数。如果这个时间早于您允许的非事件时间,则销毁此 cookie 并同时销毁您的 session ,如果不是,则将值更新为当前时间。

当然,您也可以将上次事件时间存储在 session 本身中,这是一种更有效的方法,可以消除 cookie 传输和管理的开销。

编辑

下面是检查上次事件时间和注销用户的最小代码:

function login(){
//check login username/pass etc...
$_SESSION['last_active_time'] = time();
}

function auth(){
if($_SESSION['last_active_time'] < (time() - 1800)){ //1800 is 30 minutes (time in seconds)
logout(); //destroy the session in the logout function
}
else{
$_SESSION['last_active_time'] = time();
}
//do some auth related things
}

这就是这背后的基本逻辑。当然,您需要实现其他所需的东西以及安全性、检查等....

关于php - 使用 PHP 注销非事件用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30639980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com