2014-07-14 5 views
2

저는 프로젝트에서 PHP 웹 소켓 서버를 구현하고 있습니다. 사용자가 websocket 연결을 생성하면 요청 헤더에 PHPSESSID 쿠키가 웹 서버 페이지로 전송됩니다. PHPSESSID 쿠키 값을 사용하는 모든 사용자에 대한 세션 데이터를 가져 오려고합니다. 이 서버 페이지가 단순히 들어오는 모든 소켓 연결의 $_SESSION['name']PHPSESSID 값을 사용하여 세션 데이터에 액세스하십시오.

를 사용하여 세션 값을 가져올 수 없습니다, 나는 PHPSESSID

$cookie = handshake($header, $socket_new, $host, $port); 

여기 핸드 쉐이크 기능은 PHPSESSID 쿠키를 반환합니다 가져 오기. 모든 웹 소켓 연결의

session_id($cookie); 
session_start(); 
$username = $_SESSION['name']; 

는 난 단지 첫 번째 연결에 적합한 쿠키하지만 $username를 수신하고 있습니다. 이 PHP 파일은 백그라운드에서 실행 중이므로 쿠키로 사용자를 인증해야하지만 session_id($cookie);은 한 번만 설정됩니다. 이 단일 페이지에서 다른 PHPSESSID 값에 대한 세션 데이터를 가져올 수있는 방법이 있습니까?

+2

새 ID로 이동하기 전에'session_write_close() '를 호출 해 보았습니까? – grossvogel

+0

덕분에 @grossvogel이 효과가있었습니다. 고마워. –

답변

0

마찬가지로 @grossvogel은 session_id() 직전에 session_write_close() 함수를 사용하여 PHPSESSID 쿠키를 사용하여 다른 세션의 값을 가져올 수 있습니다. 이제는 단일 페이지 내에서 다른 세션을 사용할 수 있습니다

관련 문제