php - $_SESSION 变量过期时如何注销用户

标签 php html mysql session

我正在尝试实现一个 MySQL 表,其中包含当前登录的用户列表。这是我当前实现此功能的逻辑和代码。

登录时执行以下代码:

//Add the user_id to the logged_in table
$loggedInQry = mysqli_query($dbc, "INSERT INTO logged_in (user_id) VALUES ('$userId')");

单击“注销”按钮后,执行以下代码:

//Remove user from logged_in table.
$userId = $_SESSION['userId'];
$logoutQry = mysqli_query($dbc, "DELETE FROM logged_in WHERE user_id = '$userId'");

//Clear all of the saved session variables.
session_destroy();

但是,我当前面临的问题是,如果 session 在默认 24 分钟后超时,则由于 $_SESSION['userId'] 的取消设置,用户会自动注销 变量,但是 user_id 不会从 returned_in 表中删除。

有没有办法可以在 $_SESSION 超时时执行函数?理想情况下,我希望在 session 超时时从logged_in表中删除当前的$_SESSION['userId'],因为它当前保留在logged_in表中。

最佳答案

您需要实现自己的 session 超时机制,以便可以在超时时执行相同的删除查询。

这将使您朝着正确的方向前进:https://solutionfactor.net/blog/2014/02/08/implementing-session-timeout-with-php/

关于php - $_SESSION 变量过期时如何注销用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43209479/

相关文章:

php - 哪个更适合存储类别的元描述,php var 或 mysql db

php - 如何正确创建这种类型的布局(含PHP)

javascript - 即使没有异步属性,也未定义 MathJax

php - 如何在图表中显示一周的每一天数据?

PHP-jQuery : Display a timer on each table row where end time is not set

php - 使用 openSSL 在 PHP 中加密(大)文件

MySQL 从结果中获取平均值,平均值必须在 8 到 12 之间

mysql - 连接3个包含空值的表Mysql

html - 鼠标光标作为 .Gif 没有动画

jquery - 如何在 jQuery 中检索 HTML 属性值?