我知道服务器中的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;
}
}
我编写此代码来读取用户会话的数据,但它会删除用户会话数据
答案 0 :(得分:1)
首先,阅读其他用户的会话数据是一个可怕的想法。如果您需要对该数据具有共享访问权限 - 请勿将其存储在会话中。
其次,通过session_start()
使用相同的会话ID阅读另一个人是一个更糟糕的想法 - 这样你就可以有效地代理作为该用户。在没有拦截会话数据的情况下,没有简单/可靠的方式来阅读会话数据,但这不是偶然的,而是因为你不应该这样做。
话虽这么说,不要打电话给session_destroy()
并且用户的数据不会被删除......销毁意味着毁灭。如果您正在寻找关闭会话的方法,那就是session_write_close()。