안녕하세요 모두 사용자의 세션에 대한 시간 제한에 도달하면 이상하게 작동하는 codeigniter 컨트롤러 함수에서 일부 정보를 검색하는 codeigniter보기 내에서 javascript 함수를 사용하고 있습니다. . 호출 된 PHP 함수 내에서 나는이처럼 보이는 문이 :codeigniter/탱크 인증 세션 시간 초과에 도달하면 아약스 호출에서 PHP 리디렉션 처리
if (!$this->tank_auth->is_logged_in()) {
redirect(site_url('login'));}
이 그들이 로그인하지 않은 경우, 나는 응답 텍스트를 가지고 자바 스크립트 함수에서 그러나 내 로그인 페이지로 리디렉션 및 내용을 설정합니다. 그것과 같은 div. 그들은 그것이 로그인 페이지의에서 responseText를 반환하는 대신 로그인 페이지로 리디렉션의 DIV에 삽입합니다이 함수를 호출 할 때 사용자가 로그 아웃하는 경우
xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", "mycontroller/myfunction/", false);
xmlhttp.send();
document.getElementById("mydiv").innerHTML=xmlhttp.responseText;
. 이것은 끔찍한 것 같습니다. 이 페이지를 보면서 사용자 세션 시간이 초과되면 어떻게해야합니까? 다른 응용 프로그램에 의존하기 때문에 시간 제한을 변경할 수 없습니다.
실제로 이것은 codeigniter 또는 tank_auth 문제가 아닙니다. 단순히 원래이 함수를 사용하여 responseText 문자열을 생성 할 때 대신 ajax 요청에서 호출되는 php 함수에서 리디렉션하는 방법입니다.
명확히하기 위해 PHP 파일에서 ajax 요청을 사용하는 리디렉션을 사용하고 있습니까? – dbf
@dbf ajax 요청은 내 애플리케이션에 필요한 사용자가 로그인했는지 확인하는 파일입니다. 로그인하지 않은 경우 로그인 페이지로 리디렉션됩니다. 여기서 문제는 로그인하지 않은 상태에서 ajax 요청이 발생해도 리디렉션 된 로그인 페이지의 responseText를 반환하는 php 함수를 호출한다는 것입니다. –
내가 제대로 이해할 경우에만, AJAX 요청에 의해 호출 된 PHP 파일의 값을 로그인하면 'true'또는'false'로 변경하고'document.getElementById ("mydiv")'를 if 문은 true로만 응답 할 것이고, 이것은 우리의 경우 '로그인'을 의미 할 것입니다. – dbf