세션이 만료 된 경우 여전히 부분적으로 작동하는 다수의 AJAX 호출이 있습니다.세션이 만료 된 경우 AJAX 로그 아웃
예 : 연락 양식이로드되고 채워지거나 보냈지 만 SESSION 변수가 없으므로 AJAX 호출이 백엔드에서 실패합니다.
session_start();
<?php if(!isset($_SESSION['userid']) {header('Location: index.php');}?>
그러나 아무것도 장소에두고 발생하지 :
내가 세션을 확인하기 위해 PHP의 일반적인 조각을 설정하고 싶었다는 여전히 존재 같다.
페이지가로드 될 때만 header()가 작동한다고 가정합니다. 정확합니까?
따라서 세션에서 성공 또는 실패를 반환하고 JQUERY에서 리디렉션하도록 AJAX 호출을 받아야한다고 가정합니다.
이렇게하는 것이 가장 좋은 방법입니까? AJAX 호출에서 header()가 재전송 될 수 있습니까? AJAX PHP 호출에서 작동하도록 리디렉션을 가져 오는 또 다른 방법이 있습니까?
들으
* UPDATE *
예 페이지가 이미로드. AJAX 호출은 Contactus 요청을 보내는 게시 페이지로드 함수입니다. 그러므로 header()는 여기서 읽은 바를 따르지 않는다고 가정합니다. header()는 큰 PHP 스크립트의 맨 위에 앉아서 세션이 설정된 모든 요청에 일반적으로 응답 할 수있어 좋았을 것입니다.
세션을 사용하는 각 AJAX 호출마다 체크 인을 작성해야하는 것처럼 보입니다. 일반 함수를 사용할 수 있습니다. 세션이 AJAX 사이트에서 만료되었을 때 사용자를 로그 아웃하는 더 간단한 방법이 있습니까?
이미 출력물을 보내지 않았다면 실제로는 효과가 없습니다. 오류가 있습니까? –
@Truth 그가 AJAX를 통해 해당 정보를 호출하고 그 정보를 얻는다면 그는 이미 출력을했습니다 (AJAX 호출을 수행하려면 출력이 필요합니까?) 따라서 페이지를 새로 고치지 않으면 헤더를 변경할 수 없습니다. –
이 코드는 여기서 발생합니다. AJAX 호출 자체가 아직 출력되지 않았으므로 여전히 가능합니다. 아담은 자신의 질문을 다시 말하고 더 잘 설명해야합니다. –