【问题标题】:php $_SESSION got mixedphp $_SESSION 混杂了
【发布时间】:2011-04-30 05:29:35
【问题描述】:

我有一个关于 php $_SESSION 的问题。

假设我有一个用户 A 输入 index.php 并输入了一些信息,

$_SESSION['info'] = userA

现在用户 B 输入 index.php 并输入一些其他信息,

$_SESSION['info'] = userB

现在在另一个test.php中,当我调用它会得到什么

$info=$_SESSION['info']

用户A还是用户B?

谢谢!!

【问题讨论】:

  • 会话对于访问该页面的每个用户来说都是唯一的。
  • 我认为这不值得一票否决,这可能是初学者的明显好奇心。
  • @Sandeepan Nath 我完全同意你的看法。我不知道为什么老年人会很快对新来者产生负面影响。它使他们气馁。他们应该被告知而不是给出否定的意见。反对票应该投给老年人
  • 虽然我不是反对者,但这个可以由reading the manual 回答的问题。会话的工作方式在the first three paragraphs of the introduction 中进行了解释。这意味着在询问之前没有参考手册。
  • @Sandeepan Nath 不是我投反对票的,我一看到就同意并投赞成票。

标签: php session


【解决方案1】:

输出将与当前会话的用户相关。

为每个用户创建不同的会话。

【讨论】:

    【解决方案2】:

    如果两个用户的会话相同,则用户 b 将覆盖用户 a 的值。

    如果两个用户的会话不同,您将获得您登录的用户的值。

    如果您没有会话,那么您将一无所获。

    【讨论】:

    • 会话将永远“对两个用户都相同”。那将是一场安全噩梦。
    • @Charles 理论上是正确的,但是如果两个用户在同一台​​计算机上使用同一个浏览器登录,并且会话不会因任何原因重置。没有看到代码库就无法保证
    • 两个人同时在一台计算机上使用一个浏览器 - 在 PHP 中只会显示为一个具有一个会话的用户。您将拥有 userA 或 userB,而不是涉及两个用户的某种奇怪的 wtfery。
    • @charles,根据我的回答“如果两个用户的会话相同,那么用户 b 将覆盖用户 a 的值。”不确定 wtfery 进入它的位置
    【解决方案3】:

    我亲爱的会话对于两个用户是分开的。对于用户 A,它有其单独的副本和值,对于用户 B,它有自己的。所以你不必担心混音器。

    【讨论】:

      【解决方案4】:

      在服务器中为每个用户(使用不同的浏览器或计算机访问)创建单独的会话,并使用唯一的会话 ID 与每个用户相关联,这些 ID 要么作为 cookie 存储在浏览器中,要么在 URL 中传递。

      因此,当用户 A 从一个浏览器/计算机登录时,唯一的 SESSION ID 将其与存储在服务器中的会话值相关联,当用户 B 登录时,另一个 SESSION ID 将其与自己的会话值相关联。因此,尽管服务器一次将两个会话值保存在内存中,但用户只能看到他们自己的 SESSION 值。没有混淆。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-10-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多