2013-05-03 4 views
4

나는 logout 스크립트를 쓰려고하는데, 내 기대에는 미치지 못하는 것 같다. 정확히 무엇이 잘못되었는지 모르겠다. 나는 모든 페이지에 timeout.php을 넣고 싶다. 사용자가 유휴 상태 일 때 자동으로 로그 아웃하고 login 페이지로 리디렉션하지만, 사용자 추가 페이지에 대해 timeout.php을 추가하면 사용자 추가 페이지에 대한 링크가 재정의되고 login 페이지도 추가됩니다 잘 나오는 it looks like thisPHP에서 자동 로그 아웃 페이지를 만들 때

(형태, 즉 위치에서 점점)이이 timeout.php 코드

입니다
<?php 
$_SESSION = 0; 
if($_SESSION['session_count'] == 0) { 
$_SESSION['session_count'] = 1; 
$_SESSION['session_start_time']=time(); 
} else { 
$_SESSION['session_count'] = $_SESSION['session_count'] + 1; 
} 

$session_timeout = 10; // (in sec) 

$session_duration = time() - $_SESSION['session_start_time']; 
if ($session_duration > $session_timeout) { 
session_unset(); 
session_destroy(); 
session_start(); 
session_regenerate_id(true); 
$_SESSION["expired"] = "yes"; 
header("Location: login.php"); // Redirect to Login Page 
} else { 
$_SESSION['session_start_time']=time(); 
} 
?> 

은 내가 자동 yoour 세션이 만료되어 로그 아웃 메시지와 함께 로그인 페이지에 자신을 리디렉션 할 그리고 난 그것이 페이지

+4

폴링 자바 스크립트를 사용하여 확인 했습니까? 리디렉션 전에 작업 (예 : 스크롤 및 마우스 클릭)이 필요합니까? 어쨌든 [this] (http://paulirish.com/2009/jquery-idletimer-plugin/) 플러그인을 확인하는 것이 좋습니다. –

답변

0

이 힘에게 양식을 방해하거나 중복없이 모든 페이지에 넣어 싶어 문제와 관련이 없습니다 : 왜 $_SESSION["expired"] = "yes";을 if 태그에 사용하고 있습니까? 당신이 그것을 사용하지 않는다면 세션 변수를 설정하는 지점이 보이지 않습니다. (어쩌면 다른 곳에서 사용하고 있을지 모르겠습니다.)

리디렉션이 맞습니까? 시도 echo header("Location: login.php"); 리디렉션이 가장 정확한지 확인하는 데 도움이됩니다.

그리고 그렇지 않은 경우 : 사용자 추가 페이지에 timeout.php 링크가 올바르게 위치했는지 확인하십시오. 예를 들어, 사용자 추가 페이지에서 if-else를 사용 중이며 if 태그에 있어야하지만 다른 태그에서 사용했다고 가정 해 보겠습니다.

관련 문제