【发布时间】:2012-02-02 07:39:35
【问题描述】:
我有我的应用程序的会话 ID。现在我想通过使用这个会话 id 来获取所有的会话变量。
我使用<?php echo session_id()?> 获取会话ID,但是如何使用此会话ID 获取所有会话对象值?
【问题讨论】:
-
只有一个答案说如何使用 session_id 获取会话数据。
我有我的应用程序的会话 ID。现在我想通过使用这个会话 id 来获取所有的会话变量。
我使用<?php echo session_id()?> 获取会话ID,但是如何使用此会话ID 获取所有会话对象值?
【问题讨论】:
根据php.net:有几种方法可以将现有会话 ID 泄露给第三方。泄露的会话 ID 使第三方能够访问与特定 ID 关联的所有资源。首先,带有会话 ID 的 URL。如果您链接到外部站点,则包含会话 ID 的 URL 可能会存储在外部站点的引荐来源日志中。其次,更积极的攻击者可能会监听您的网络流量。如果未加密,会话 ID 将以纯文本形式通过网络传输。这里的解决方案是在您的服务器上实施 SSL,并强制用户使用。
这就引出了一个问题,您如何拥有会话 ID 但无法访问脚本?
无论如何,您都需要设置会话 ID,然后启动它...然后访问数据。
session_id($whatever_id_you_have);
session_start();
echo $_SESSION['somekey'];
【讨论】:
$_SESSION 是您正在寻找的。记得先拨打session_start()。见http://php.net/session.examples.basic
【讨论】:
var_dump($_SESSION); 将显示当前会话的内容,然后您可以像访问普通数组一样访问这些值。
【讨论】:
您可以使用这个检查所有会话值..
print_r($_SESSION);
【讨论】: