2011-02-02 9 views
0

"로그인 상태 유지"옵션이있는 사이트가 있습니다. 이 옵션을 선택하면, 나는 한 달과 같이 쿠키를 설정합니다 PHP 쿠키가 삭제되지 않습니다!

$expire = time()+60*60*24*30; 
setcookie("user_ID", $userid, $expire); 
setcookie("u", $username, $expire); 
etc. 

그럼 내가 쿠키를 죽일 로그 아웃 스크립트가, null에 과거에 일을 한 시간 만료 값을 설정. 내가 로그 아웃 스크립트를 실행하면

$expire2 = time()-60*60; 
foreach ($_COOKIE as $c_id => $c_value) 
{ 
    setcookie($c_id, NULL, $expire2); 
} 

는 파이어 버그는 말한다이 :

설정 쿠키 사용자 ID = 삭제; expires = Tue, 2010-02-02 16:43:15 GMT u = 삭제됨; 만료 = 2010 년 2 월 2 일 16시 43 분 15 초 GMT

하지만 메인 페이지 또는 다른 페이지로 돌아 가면 나는 여전히 로그인되어 있습니다! 쿠키를 설정하는 유일한 시간은 로그인 스크립트를 실행할 때입니다. 그렇다면 왜 죽지 않을까요? GMT 뒤에있는 현지 시간과 관련이 있습니까?

+2

인증 유지에 $ _SESSION 기반 쿠키를 사용하고 있습니까? –

+0

인증은 어떻게 작동합니까? 그리고 당신의 쿠키로 어떤 일이 있었는지 확인 했습니까? – Gumbo

답변

3

신경 쓰지 마세요. 내가 쓴 대부분의 실수와 마찬가지로, 이것은 매우 어리 석다. 경로 쿠키를 설정하고 로그 아웃 스크립트가 로그인 스크립트와 다른 디렉토리에 있습니다. 쿠키를 도메인 쿠키로 설정했으며 현재 작동 중입니다.

관련 문제