我正在寻找一种方式来阅读PHP会话的内容,而实际上并没有取代当前请求的运行会话。阅读PHP会话,而不实际启动它
可以说我有一个正在运行的会话(与在session_start()开始前,使用默认的会话处理程序,并通过PHPSESSID饼干给出的SESSION_ID) 现在我有另一个(有效)SESSION_ID,我想读一些的存储在该会话中的数据。
我能想到的唯一方法是用$ oldSession = session_id()替换当前会话,使用session_id($ newId)设置新会话,然后从$ _SESSION读取数据,然后重新启动原始会话session_id($ oldSession) - 可能涉及session_commit()和session_start()的一些附加调用。
但我宁愿不碰的电流,运行会议在所有...
PHP 5.4引入了SessionHandler类(http://php.net/manual/de/class.sessionhandler.php),但手动调用$ SessionHandler->阅读似乎并没有工作,要么
$handler = new SessionHandler();
var_dump($handler->read($session));
//Fatal error: SessionHandler::read(): Cannot call default session handler
我使用的是原生的php memcached的会话处理程序
谢谢你的任何的窍门!
'SessionHandler'不适用于应用程序 'php_serialize' 工程直接打电话。如果他们想要自定义会话处理,他们应该实现一个子类,然后PHP会调用他们的会话处理程序。 – Barmar