2017-10-05 1 views
1

내 상황은 다음과 같습니다. 나는 동일한 서버에서 실행되는 cakephp 프로젝트와 분리 된 일반 PHP 스크립트를 가지고있다. 클라이언트 브라우저를 사용하여 cakephp 프로젝트에 연결하면 필요한대로 세션이 빌드됩니다.cakephp 계속 3 PHP 스크립트에 대한 세션

이제 일반 PHP 스크립트로 세션 데이터를 계속 만들고 싶습니다. 다시 동일한 클라이언트 브라우저를 사용하여 일반 PHP 스크립트에 액세스합니다 (요청 메타 데이터가 같아야하고 세션을 인식해야 함). 그리고 cakephp 세션 옵션을 PHP로 설정합니다.

'Session' => [ 
    'defaults' => 'php', 
], 

그러나 일반 PHP 스크립트에서 세션을 계속하는 방법을 알 수 없습니다.

session_start(); 
echo json_encode($_SESSION); 

종류의 안부 마리우스

(모든 내장 기본값 같은)을 변경합니까

답변

5

CakePHPs의 PHP 세션 기본값 : 나는 마법을 할 것입니다 내 일반 PHP 스크립트의 다음 두 줄을 가정 한 것입니다 CAKEPHP에 세션 (session.name INI 설정)의 쿠키/이름의 이름 :

https://github.com/cakephp/cakephp/blob/3.5.3/src/Network/Session.php#L133-L138

에 대해 구성된 이름을 사용하는 후자의 응용 프로그램을

'Session' => [ 
    'defaults' => 'php', 
    'cookie' => session_name(), // would use the PHP default 
], 
// ... 

또는 변경 :

그래서 당신은 (PHP는 기본적 즉, 대부분의 아마 PHPSESSID입니다) 당신의 바닐라 PHP 응용 프로그램에서 사용하는 기본 설정에 맞게 그것을 변경해야 하나 당신의 CakePHP의 응용 프로그램 :

session_name('CAKEPHP'); 
session_start(); 
// ... 

는 또한 session.cookie_pathsession.cookie_domain 구성이 응용 프로그램의 위치를 ​​모두 다루고 있는지 확인하십시오.

보기