2015-01-13 2 views
1

쿠키 만료시 조치가 필요합니다.쿠키 만료시 조치 수행

setcookie('loggedIn', true, time()+ 3600); 

쿠키가 내가 자동으로 다른 웹 페이지로 리디렉션 및 사용자가 로그 아웃 할 PHP 스크립트를 호출 할 수 싶습니다 만료 예를 들어 내가 쿠키를 가지고있다.

+0

[세션] (http://php.net/manual/en/book.session.php)은 로그인 관리에 더 적합합니다. – Scuzzy

답변

3

$_COOKIE을 통해 확인할 수 있습니다.

if(!isset($_COOKIE['loggedIn'])){ 
    header('Location: /path/to/another/page'); 
    exit; 
} 

별도의 파일로 코드화하여 모든 페이지에 포함 시키거나 XHR에서 구현할 수 있습니다.

+0

그게 전부지만, 모든 페이지에 그것을 포함한다는 것을 의미합니다. 쿠키 만료시 스크립트가 자동으로 실행되는 대신 페이지로드 (실행해야 할 때)에서만보다 일반적인 솔루션을 찾고있었습니다. – yitzih

+1

@yitzih 별도의 파일로 작성하여 모든 페이지에 포함시킬 수 있습니까? 또는 XHR에서 구현할 수 있습니다. – Sithu

2

사용자가하려고하는 것이 일정 시간이 지나면 사용자를 자동으로 로그 아웃하는 것처럼 들립니다. 쿠키 만료가이 작업을 수행하는 적절한 방법이 아닙니다. - 쿠키 만료일은 사용자가 변경할 수 있으며 만료일없이 만 쿠키를 삭제할 수 있습니다. 예를 들어 사용자가 브라우저에서 쿠키를 삭제하거나 비공개 브라우징 세션을 사용할 경우

자동으로 사용자를 로그 아웃하는 적절한 방법은 세션에 만료일을 저장하는 것입니다.

// during login 
$_SESSION["valid_until"] = time() + 3600 * 3; // stay logged in for three hours 

// then, during page startup 
if ($_SESSION["valid_until"] < time()) { 
    session_destroy(); // or store data in the session to indicate it's inactive 
    header("Location: error.php?err=session-timeout"); 
    exit(); 
}