2010-04-19 3 views
3

세션을 좀 더 살펴보고 일부 입력을 원합니다. 형태로 한 번 간단한 로그인 폼에 PHP - session_set_cookie_params 및 session_get_cookie_params

는 내가 서버에 요청 내가 이것을 가지고 만든 다음

. 
.. 
... 
session_name('TOKEN'); 
session_set_cookie_params(time() + 600, './', 'example.co.uk', false, false); 
session_start(); 
$_SESSION['TOKEN'] = TOKEN; 
... 
.. 
. 

와 다음이 submited된다.

Array ([lifetime] => 0 [path] =>/[domain] => [secure] => [httponly] =>)

을 반환

. 
.. 
... 
session_name('TOKEN'); 
$session_data = session_get_cookie_params(); 
print_r($session_data); 
... 
.. 
. 

당신이 뭔가가 작동하지 않거나 내가 조금 변기가는 무언가 또는 메신저를 잃었 볼 수 있듯이!

어쨌든 누구나 내가 잘못 가고있는 부분에 대한 의견이 있다면 나는 그것을 여기에 좋아할 것입니다!

답변

0

가장 좋은 해결책은 세션 쿠키 매개 변수를 만지지 않는 것입니다.
세션은 기본값으로 매우 잘 작동합니다. 수동 보정을하면 최악의 상황이 될 수 있습니다.

질문에 대해서는 session_get_cookie_params가 정상적으로 작동합니다. 그것은이 다른 파일에서 변경되지 않는 것 같은 현재 설정을 보여줍니다.

+0

나는 의견 제시 이외에이 질문에 어떻게 대답하는지 모르겠다. 대부분의 'remember me'구현은 세션 쿠키의 만료 필드를 사용하여 AFAIK, Zend Framework를 1 점 씩 나타냅니다. – quickshiftin

+1

"세션 쿠키의 필드가 만료됩니다"는 모순됩니다. –

+0

귀하의 요지를 이해하는 동안, 여전히 질문에 대한 유효한 답변이 아닙니다. 젠드 프레임 워크에서 로터리 어플을 즐기기는하지만 전체 초라한 프레임 워크에서 또 다른 실패입니다. 'Zend_Session :: rememberUntil()'에서 직접 확인하십시오 [구현] (http://framework.zend.com/svn/framework/standard/trunk/library/Zend/Session.php) – quickshiftin

4

이미 알았지 만 모든 단일 페이지 요청에 대해 session_start() 전에 session_set_cookie_params()를 호출해야합니다. 함수에 대한 수동 입력을 말하십시오.

+0

+1은 '올바른'답변입니다. 이것은 내 사건에서 일어나는 일을 의미합니다. – quickshiftin

0

나는 그것이 작동 할 수 있습니다 생각

session_set_cookie_params(time() + 600, '/', '.example.co.uk', false, false); 

'/'하지 './'

'.example.co.uk'하지 'example.co.uk'

나를 위해 잘 작동합니다.