【问题标题】:how to get session variables using session id如何使用会话 ID 获取会话变量
【发布时间】:2012-02-02 07:39:35
【问题描述】:

我有我的应用程序的会话 ID。现在我想通过使用这个会话 id 来获取所有的会话变量。

我使用<?php echo session_id()?> 获取会话ID,但是如何使用此会话ID 获取所有会话对象值?

【问题讨论】:

  • 只有一个答案说如何使用 session_id 获取会话数据。

标签: php session


【解决方案1】:

根据php.net有几种方法可以将现有会话 ID 泄露给第三方。泄露的会话 ID 使第三方能够访问与特定 ID 关联的所有资源。首先,带有会话 ID 的 URL。如果您链接到外部站点,则包含会话 ID 的 URL 可能会存储在外部站点的引荐来源日志中。其次,更积极的攻击者可能会监听您的网络流量。如果未加密,会话 ID 将以纯文本形式通过网络传输。这里的解决方案是在您的服务器上实施 SSL,并强制用户使用。

这就引出了一个问题,您如何拥有会话 ID 但无法访问脚本?

无论如何,您都需要设置会话 ID,然后启动它...然后访问数据。

session_id($whatever_id_you_have);
session_start();
echo $_SESSION['somekey'];

【讨论】:

  • +1 只有这个答案说明了如何使用 session_id 获取会话数据。
  • 当 session.use_strict_mode 设置为 1 或 true 时,不能使用 session_id($sid) 设置当前会话的会话 ID。 php.net/manual/en/function.session-id.php
【解决方案2】:

$_SESSION 是您正在寻找的。记得先拨打session_start()。见http://php.net/session.examples.basic

【讨论】:

    【解决方案3】:

    var_dump($_SESSION); 将显示当前会话的内容,然后您可以像访问普通数组一样访问这些值。

    【讨论】:

    • 但现在我无法编辑脚本并且只有会话 ID。那么如何获取会话变量
    【解决方案4】:

    您可以使用这个检查所有会话值..

    print_r($_SESSION);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-27
      • 2022-11-08
      • 2014-05-25
      • 1970-01-01
      • 2019-01-22
      • 1970-01-01
      相关资源
      最近更新 更多