【问题标题】:User profiles to display info dependant on owner with php使用 php 显示依赖于所有者的信息的用户配置文件
【发布时间】:2013-12-17 19:44:39
【问题描述】:

我已经建立了一个基本系统,用户可以在其中注册、登录和查看自己的个人资料。但是,目前他们的信息显示在个人资料页面上,使用 SESSION 变量来存储他们的用户名。然后所有其他数据都基于此。但是,如果他们随后查看其他人的个人资料,则该信息将不正确,因为它会改变以显示从 $ session 中提取的任何结果。

我将如何创建功能正常的个人资料页面。我正在努力实现的一个很好的例子就是 YouTube。每当用户添加评论时,都会附上他们的用户名,然后将其作为指向其个人资料的链接。

我没有任何代码。我不知道从哪里开始。

【问题讨论】:

  • 而不是从会话使用数据库中提取他们的信息

标签: php mysql login profile


【解决方案1】:

在用户注销时销毁会话。这样你就可以得到正确的数据

【讨论】:

    【解决方案2】:

    因为没有代码让我尝试帮助你,所以我给你一些指点。

    1. 首先不要使用用户的用户名来识别他们并将他们链接到他们的个人资料 2 或更多人可能拥有相同的用户名然后你就完蛋了,而是使用他们的 ID 来唯一地识别他们。

    2. 将当前登录的用户数据保留在会话变量中,因为您不想在他离开浏览用户配置文件页面时丢失这些数据。

    3. 如果您使用用户 ID 来识别他们,您可以通过 url 发送他们的 ID,而不会出现太多安全问题。因此,您可以在显示所有要查看的用户的位置创建一个类似于 href="user_profile.php?user_id=<?php echo $user_id; ?>" 的 URL。然后在您要查看已选择的用户配置文件的页面上,您可以使用$_GET['user_id']。然后,您可以通过在数据库中查询具有此 user_id 的用户,使用该 ID 获取该特定用户的所有详细信息。

    【讨论】:

    • 经过一番思考后,我认为它必须与此类似,但是我不确定如何回忆用户 ID,但如果它是 url 的一部分,它应该不是问题?此外,如果将用户完全发送到不同的页面,是否可以实现此方法。例如从 forum.php 到 user_profile.php?userid=6393。如果我这样做,我是否必须以某种方式存储上一页的用户 ID?
    • 感谢您的详细回复顺便说一句:)
    • 是的,您可以在我的回答中使用该方法将 user_id 发送到任何页面,然后在 url 指向的页面上使用 GET。如果需要,您还可以通过添加发送更多信息?在每个变量之后,但要注意不要发送敏感数据或过多的变量来暴露你的表结构。
    【解决方案3】:

    您正在使用已登录用户的用户名会话。

    所以登录的用户可以使用会话用户名查看自己的个人资料。

    如果用户想查看另一个用户的个人资料,那么您有两种方法来执行它。

    1. 创建另一个页面以查看任何用户配置文件。将用户名作为查询字符串传递并找到您要显示的用户信息。

    2-为您自己和其他人使用相同的用户个人资料页面。并在此页面上传递您要显示其信息的用户名。

    你必须在那里应用一个条件——如果设置了用户名,则通过 post 或 get 方法检索传递的用户的信息。或者如果未设置,则检索会话中用户的信息(自己的信息)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      相关资源
      最近更新 更多