2012-04-23 3 views
3

동일한 도메인 (CMS 및 전자 상거래 플랫폼)에 두 개의 웹 응용 프로그램이 있으며 둘 사이에 세션 데이터를 공유하고 싶습니다. 둘 다 같은 세션을 사용하도록 쉽게 설정할 수 있지만 $ _SESSION 변수에 변수 이름 충돌 가능성이 너무 많습니다. 나는라는 이름의 세션을 사용할 수 있다고 생각하지만, 나는 중 하나가 작동 가져올 수 없습니다 :이 가능한 경우여러 웹 응용 프로그램간에 PHP 세션을 공유하십시오.

session_name("WEB_APP_ONE"); 
session_start(); 
$webAppOneData = $_SESSION; 
session_write_close(); 

//var_dump($_SESSION) = all of the session data for web app one is still contained in $_SESSION even though I closed the session with session_write_close() 

session_name("WEB_APP_TWO"); 
session_start(); 
$_SESSION['WEB_APP_ONE'] = $webAppOneData; 

//var_dump($_SESSION) = all of the session data for web app one is still here 

잘 모르겠어요,하지만 난 그게 있는지 알고 싶습니다!

참고 : 실제 사용 사례는 CMS에서 방문자 카트에 얼마나 많은 제품이 있는지 보여줄 수 있습니다. 장바구니 데이터는 전자 상거래 플랫폼의 세션에 저장되지만 CMS의 헤더에서 표시해야합니다. 나는 CMS와 장바구니 사이의 완벽한 통합을 원한다.

+0

쿠키 사용을 고려 했습니까? –

+0

우수 질문. 이것은 놀랍습니다. Session_write_close()와 session_write_close()를 동일한 스크립트에서 session_write()를 사용하기 전에 원하는 방식으로 사용했기 때문에 이것이 얼마나 오래 작동했는지 궁금합니다. – goat

+0

https://bugs.php.net/bug.php?id=45380 – goat

답변

0

내가 추천 할 것입니다 단지 이름 간격 중첩 배열로 세션 :

$_SESSION['app1']['app1var'] = 'value'; 
$_SESSION['app2']['app2var'] = 'value'; 

또한 단지 말한다 저장소 사용자의 인증 정보를 세션을 사용하여 저장하는 대신 데이터베이스에서 세션 정보를 검색하는 것이 좋습니다 액세스 할 데이터베이스 행.

관련 문제