2012-10-24 1 views
0

쿠키를 삭제하려고하지만 브라우저가 새로 고쳐 져야하거나 쿠키를 클릭하기 위해 클릭 한 다른 링크를 찾으려합니다. 나는 PHP에서 헤더 (..)를 사용했다.브라우저를 새로 고치지 않고 PHP 쿠키를 삭제하려면 어떻게해야합니까?

if(isset($_COOKIE['auth_key'])){setcookie("auth_key", "", time() - 3600);} 
header("Location: ../login.php"); 

나는 로그인 페이지, 쿠키 출력에 도착하지만, 새로 고침이 사라집니다, 또는 내가 거기에서 다른 링크로 이동하는 경우가 사라지면.

사용자가 개입하지 않고 쿠키를 제거하고 서버가 login.php를로드하기 전에 삭제하고 싶습니다.

도움을 주시면 감사하겠습니다.

이 답변은 다음과 같습니다

if(isset($_COOKIE['auth_key'])){setcookie("auth_key", "", 1,'/');} 

내가 '/'슬래시와 함께 쿠키를 설정하기 때문이다. 나는 이것을 삭제하는데 사용했고, 지금은 작동한다. 그러나 쿠키가 새로 고침 될 때 여전히 삭제 된 것은 이상한 일이었습니다.

+1

쿠키를 삭제하는 데 상대 시간을 사용하지 마십시오. 사람들의 시계는 꺼져있을 수 있습니다. 쿠키를 삭제하려면 항상 고정 시간 값 '1'을 사용하십시오. –

+0

시도했지만 쿠키가 내 길을 삭제하고 있습니다. 브라우저가 이것을 받아들이게하는 것이 사실입니다. – martyn

답변

0

이 리디렉션 페이지 대신 login.php 시작 부분에 쿠키 (이 코드 사용)를 지우십시오.

+0

로그 아웃 및 로그인 페이지에서 쿠키를 삭제했지만 여전히 운이 없습니다. – martyn

+0

아직 잠금이 없습니까? 아무것도 찾았나요? – GolezTrol

0

시간 초과 기간을 설정 한 다음 Javascript를 사용하여 서버 쪽 페이지에 AJAX 요청을 시작하여 해당 쿠키를 삭제할 것을 고려하십시오.

+0

쿠키는 로그인 페이지 메뉴에 영향을 미치기 때문에 즉시 로그 아웃 할 때 삭제해야합니다. login.php에 ajax 스크립트를 넣는 것이 좋습니다. 새로 고침 작업을 복제하십시오. – martyn

0

내가 찾은 정답은 "/"와 쿠키 설정했다 :

if(isset($_COOKIE['auth_key'])) { 
    setcookie("auth_key", "", 1, '/'); 
} 

나는 모든 쿠키를 삭제하려면이 옵션을 사용하고 그것은 작동합니다. 그러나 쿠키는 새로 고침시 삭제됩니다.

관련 문제