假设名为 Michael 的用户已注册,并且位于名为用户的表格中的数据库中。
迈克尔浏览我的网站,当他这样做时,我从表中删除了他的用户。 我的登录系统适用于会话。
用户Michael从数据库中删除后,浏览器可以使用“Michael”浏览网站,直到会话结束。
那是因为在会话处理之后,除非您每次都检查,否则它不会改变。
由于查询/请求太多,我的解决方案可能会增加巨大的引擎负载:
在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();
}
}
它将检查是否使用与当前会话登录的用户名完全相同的行,如果没有,则会破坏会话。
问题:
如果我的网站有很多浏览用户,那么该解决方案是否会导致大量引擎负载?
有更好的方法吗?
答案 0 :(得分:3)
从“用户”表中删除行时,只需删除或使该用户的会话失效。
答案 1 :(得分:0)
Ayush - 你打算如何摧毁别人的会议?
user1761494 - 最好的方法是在数据库中保存会话,这不仅可以增加您网站的安全性,还可以让您完全控制会话。当你踢出一个用户(删除/禁止)时,只需删除该用户的会话记录。