2011-05-13 2 views
0

내 새로운 프레임 워크 코드를 필자의 새로운 Zend Application과 통합해야합니다. 그러나 그들은 세션을 공유해야합니다. 내가 직면하고있는 문제는 - 내가 젠드 응용 프로그램에서 세션에 액세스하지 못할젠드가 아닌 PHP의 Zend_Session_Namespace

$_SESSION['MyApp']['user']=$user; 

를 사용하여 비 젠드 PHP에서 세션 변수를 설정하고, 내가 시도 모두 -

print_r($_SESSION['MyApp']['user']); 

$myAppSession = new Zend_Session_Namespace('MyApp'); 
print_r($myAppSession->user); 

작동하지 않습니다. 정보 - 내 부트 스트랩 정보 파일에는

resources.session.name = "MyApp" 

이 있습니다.

+0

응용 프로그램의 네임 스페이스 – Tjorriemorrie

답변

0

는, 젠드 세션 요청에 젠드에서 세션 ID를 전송하고 해당 세션 ID로 세션을 시작했다 그래서 내가 한 정상 PHP 세션과는 다른 세션 ID를 가지고

아름다운 코드는 아니지만 작동합니다.

0

Zend_Session_Namespace는 $ _SESSION의 래퍼 일 뿐이므로 간단해야합니다. 작동하지 않는다고 말하면 $ _SESSION 배열이 비어 있습니까? 그렇다면 같은 세션 저장 방법, 쿠키 이름 등을 사용하여 세션을 생성하고 있는지 확인하십시오.

+0

예, 비어 있습니다 ... shud 똑바로 될 수 있습니다 ... 나는 비 zend PHP에서 session_start() 사용해야합니까? –

+0

@ Nandini 예, ZF가 아닌 앱에서'$ _SESSION'을 사용하려면, 사용하기 전에'session_start()'를 실행해야합니다. – Phil

+0

session_start() ... 작동하지 않습니다 ... –

0

ZF 세션 네임 스페이스와 세션 이름이 혼동 스럽습니다.

세션 이름은 세션 쿠키에 저장된 값을 참조하며 실제 내용 인 $_SESSION에는 영향을주지 않습니다.

앱이 세션을 공유하려면 모두 session_name() 또는 session.name php.ini 지시어를 사용하여 동일한 이름을 설정해야합니다.

if(isset($_REQUEST['sess_id'])) { 
     $sess_id = $_REQUEST['sess_id']; 
    } 

    session_id($sess_id); 
    session_start(); 
- 나는 방법을 발견
+0

은 session_name처럼 만들었습니다 ('셀 티스'); session_start(); $ _SESSION [ 'user'] = $ user; 작동하지 않습니다 ... –

+0

@ Nandini 왜 "Cellthis"인가? ZF 세션 이름이 "MyApp"가 아닙니까? – Phil