【发布时间】:2021-10-26 19:55:40
【问题描述】:
答案可能很简单,但我一直在想办法,但我不能。
我为每个“当前”登录并拥有注册帐户的用户创建了一个个人资料页面,但问题是任何人都可以使用链接访问彼此的个人资料并对其进行编辑。例如:
https://localhost/profile.php?username=Msprite 可以轻松访问 https://localhost/profile.php?username=Msprite2 通过调整链接,输入他们的用户名。
当访问个人资料时,用户点击下面的代码被重定向到他们的个人资料,并使用 $_SESSION 来存储他们的用户名。
`echo '<td><a href="profile.php?username=' . $_SESSION['loggedin'] . '">' . '' . ' ' . $_SESSION['loggedin'] . ' </a></td>';
我是否试图以错误的方式进行操作?是否有另一种方法可以分别显示每个用户的设置。如何阻止用户访问其他用户的信息。
session_start(); if (!isset($_SESSION['username'])) {
header('Location: admin/index.php');
exit;
}
if 语句检查用户是否登录,有没有办法检查用户是否是试图访问其帐户信息的实际合法用户?
【问题讨论】:
-
您只需检查当前登录的用户是否与他们正在访问的个人资料页面相同,并(禁止)允许他们基于此执行某些操作。
-
我该怎么做?
-
Msprite存储在哪个会话变量中?您甚至不需要 URL 中的名称,只需发送到profile.php并从会话中获取他们的用户名信息。检索和保存信息的代码示例是什么? -
好点,我认为您必须在 url 中存储一个 id(在我的情况下是用户名)才能检索其信息。我试试看。