gpt4 book ai didi

session 中的 PHP 登录系统问题!

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

我有几个关于 session 和登录/注销系统的问题。

在我的系统中,首先我检查用户数据(用户名和密码)是否正确。如果是这样,我正在注册一个 session :$_SESSION['loggedin'] = 1 然后我假设已登录并且我总是检查是否 $_SESSION['loggedin'] 1或不。

但是,我最近观察到其中一位用户登录后,假设他们转到了他们的页面:/profile.php?u=newuser 但是当他们在自己的页面中时,如果他们碰巧将 url 更改为:/profile.php?u=newuser2 我的系统假定 newuser2 现在已登录 :( 我该如何解决这个问题?最好和安全的方法是什么登录用户?

最后,下面的方法行得通吗?假设我注册了 $_SESSION['username'] = $username; 在这里 $username 数据是从数据库中检索的。为了了解用户是否登录,我总是从数据库中检索用户名并检查 $_SESSION['username'] == username。这合乎逻辑吗?始终从数据库中获取用户名是否高效?

最佳答案

由于 session 数据存储在服务器上,因此将用户名存储在 $_SESSION 中并按照您所说的进行检查应该没有问题。

存储用户id会更好,但说实话这没什么大不了的。当然,除非您允许用户更改他们的用户名。

profile.php 不应该有一个 $_GET 变量来决定编辑谁。它应该自动使用登录的人。即

而不是去

$username = $_GET['u'];

你应该使用

$username = $_SESSION['username'];

关于 session 中的 PHP 登录系统问题!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5931536/

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