php – 如何从SESSID获取$_SESSION数据?
我有一个
PHP websocket服务器(
https://github.com/lemmingzshadow/php-websocket/).
当用户连接时,我想设置/获取一些会话数据. 问题是我不能使用$_SESSION,因为如果我这样做,而不是客户端会话,我得到我的websocket服务器的会话. 我设法得到客户的SESSID: private function handshake($data) { $this->log('Performing handshake'); if(preg_match("/PHPSESSID=(.*?)(?:;|rn)/",$data,$matches)){ $sessid = $matches[1]; } /* Do handshake */ } 但现在我不知道如何获得与该SESSID相关的会话数据.
我似乎已经解决了它(但我必须更多地测试它):
private function handshake($data) { $this->log('Performing handshake'); if(preg_match("/PHPSESSID=(.*?)(?:;|rn)/",$matches)){ $this->sessID = $matches[1]; session_id($this->sessID); @session_start(); if(isset($_SESSION['userName'])){ $this->userName = $_SESSION['userName']; }else{ $_SESSION['userName'] = $this->userName; } session_write_close(); }else{ $this->log('No SESSID'); return false; } /* Do handshake */ } 并在我的客户端页面index.php上启用会话cookie <?php session_start(); ?> <!DOCTYPE html> <!-- Page's HTML --> 说明 首先,我使用 然后,我可以使用 > PHP警告:session_start():无法发送会话cookie – 已发送的标头 现在我可以用 最后,我使用 > (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |