如何使用PHPSESSID读取会话

时间:2015-10-28 11:00:27

标签: php session

我知道服务器中的PHPSESSID如何读取设置为PHPSESSID的会话变量(我不想使用$ _SESSION,因为我不想在此线程中启动会话)我只想读取会话使用PHPSESSID的数据? PHP:

<?php
namespace MyApp;
class readSession extends \Thread {
    private $sess_id,$data_name;
    public function __construct($SESSID,$data_name){
        $this->sess_id = $SESSID;
        $this->data_name = $data_name;
    }
    public function run(){
        $data = $this->readSession($this->sess_id,$this->data_name);   
    }
    private function readSession($SESSID,$data_name){
        session_id($SESSID);
        session_start();
        $temp = $_SESSION[$data_name];
        var_dump($_SESSION);
        session_destroy();
        return $temp;
    }    
}

我编写此代码来读取用户会话的数据,但它会删除用户会话数据

1 个答案:

答案 0 :(得分:1)

首先,阅读其他用户的会话数据是一个可怕的想法。如果您需要对该数据具有共享访问权限 - 请勿将其存储在会话中。

其次,通过session_start()使用相同的会话ID阅读另一个人是一个更糟糕的想法 - 这样你就可以有效地代理作为该用户。在没有拦截会话数据的情况下,没有简单/可靠的方式来阅读会话数据,但这不是偶然的,而是因为你不应该这样做。

话虽这么说,不要打电话给session_destroy()并且用户的数据不会被删除......销毁意味着毁灭。如果您正在寻找关闭会话的方法,那就是session_write_close()