gpt4 book ai didi

PHP SESSIONS 检查用户是否仍在数据库中,同时登录

转载 作者:行者123 更新时间:2023-11-29 05:29:36 25 4
gpt4 key购买 nike

假设名为 Michael 的用户已注册,并且在我们的数据库中名为 users 的表中。

Michael 浏览了我的站点,在他浏览的同时,我从表中删除了他的用户。我的登录系统使用 session 。

用户Michael从数据库中删除后,浏览器可以浏览带有“Michael”的网站,直到 session 结束。

那是因为session处理后,除非你每次都检查,否则它不会改变。

我的解决方案可能会因为太多的查询/请求而增加巨大的引擎负载:

在 session.inc.php 中添加一个检查器:

if (isset($_SESSION['user']))
{
$check = $pdo->prepare("SELECT * FROM users WHERE user_name = :user")
$check->execute(array( ":user" => $_SESSION['user']));

if (!$check->rowCount())
{
session_destroy();
}
}

它将检查是否有一行与他当前登录的用户名完全相同,如果没有,它将销毁 session 。

问题:

如果我的网站有很多浏览用户,该解决方案是否会导致引擎负载过大?

有更好的方法吗?

最佳答案

当您从“用户”表中删除一行时,只需删除该用户的 session 或使该用户的 session 过期。

关于PHP SESSIONS 检查用户是否仍在数据库中,同时登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16131464/

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