나는이 문제가 실제로 무엇인지 알지 못합니다.setcookie 쿠키를 제거하지 않음
"login.php"라는 스크립트가 완벽하게 작동합니다. 그것은 AJAX 호출, 그리고 성공적으로 반환하는 경우, 페이지가 새로 고쳐 사용자는에 기록됩니다. 쿠키는 그런 다음 스크립트는 "logout.php"라고했다
setcookie("main", $row[0], time() + 3600, "/")
와 해당 페이지에 설정되어 있습니다. 같은 방법 (AJAX 및 페이지 새로 고침)이라고합니다.
페이지를 호출하는 것이 작동하지 않으므로 브라우저에 logout.php 만로드했습니다. 결과는 "완료"되었지만 Chrome에서 쿠키를 확인하면 쿠키가 여전히 "1"($ row [0])으로 설정되었고 login.php에 설정된 시간에 만료되었음을 나타냅니다.
login.php와 logout.php는 모두 다른 폴더와 동일한 폴더 인 같은 폴더에 있습니다.
이전에는이 방법이 효과적 이었지만 웹 사이트의 제목 표시 줄을 (여전히 루트 디렉토리에 있음) 만들고 로그 아웃 버튼에 대한 JavaScript 기능을 사용하면됩니다. 그냥 AJAX 호출과 일부 jQuery 호버 효과를 가져 와서 자체 스크립트 파일을 만듭니다.이 스크립트 파일은 _js 폴더에 있습니다. 하지만 나는 logout.php를 전혀 변경하지 않았으므로 직접 탐색 할 때 여전히 작동해야합니다. 맞습니까? 내 setcookie 명령에 문제가 있습니까? 아니면 다른 문제가 원인 일 수 있습니까?
편집 : -3600 대신 100 초 만료되도록 설정 한 다음 이름을 변경하여 전체 쿠키를 인식 할 수 있도록 시도했습니다. 그들 중 누구도 나타나지 않았습니다. 쿠키는 전혀 설정되지 않습니다.
EDIT 2 : 마지막 커밋으로 되돌아 왔고 모든 것이 다시 작동합니다. 왜 새로운 파일을 생성하여 사이트를 재구성하는지 (logout.php는 전혀 변경되지 않음) 특정 스크립트가 쿠키를 생성 할 수 없게 만듭니다.
당신은 당신이 동일한 도메인에 호출하고 있는지 있습니까? 아마 당신은 www.domain.com에 쿠키를 설정하고 제거 할 domain.com에 있습니까? –
둘 다 "/"에 설정 했으므로 동일한 것이어야합니다. 둘 다 같은 폴더에 있습니다. –
경로가 다르면 도메인이 다를 수 있습니다. domain.com에서 액세스 할 수없는 것보다 www.domain.com에 쿠키를 설정하는 것은 비록 그들이 똑같은 도메인이지만 이론적으로는 아닙니다. 따라서 도메인을 www.domain.com/login.php와 같이 설정하면, 로그 아웃 PHP 스크립트가 www.domain.com/logout.php에서 호출되어야합니다. domain.com/logout.php가 아닌 –