2013-04-28 4 views
0

사람들이 내 웹 사이트에서 너무 일찍 로그 아웃하지 않도록 내 로그인 세션을 더 오래 만들려고합니다. 예를 들어, 블로그 게시물을 만들고 php가 쿠키를 만료했기 때문에 제출할 때 잃어 버릴 수 있습니다.지속적인 PHP 로그인 세션 만들기

이상적으로 나는 그들이 로그 아웃되지 않는 2 시간 세션을 말하고 싶습니다. 페이지를로드 할 때마다 새로 고침됩니다 (이 코드 조각은 각 보안 페이지 헤더 앞에 있습니다)

이것은 내가 시도한 것이지만, 0으로 나누기가 있다고 말하는 setcookie()에 대한 오류가 발생합니까? 여기서 내가 뭘 잘못하고 있니?

//How long sessions last 
$hours = 2; 

// php.ini setting required for session timeout. 
ini_set('session.gc_maxlifetime',$hours*60*60); 
ini_set('session.gc_probability',1); 
ini_set('session.gc_divisor',1); 

//Set the session parameters and start session 
$sessionCookieExpireTime=$hours*60*60; 
session_set_cookie_params($sessionCookieExpireTime); 
session_start(); 

// Reset the expiration time upon page load 
if (isset($_COOKIE[session_name()])) 
{ 
    setcookie(session_name(), $_COOKIE[session_name()], time() + $sessionCookieExpireTime, "/"); 
} 

편집 : 이제 문제는 비표준 따옴표와 작은 따옴표를했다로 활동. 누구나이 코드를 복사하여 사용하면됩니다. 위의 코드가 이제 작동합니다!

+0

그 코드를 복사하여 붙여 넣을 때 오류가 없으므로 다른 것이 있어야합니다. 나는 당신의 모든 따옴표/아포스트로피를 대체해야했지만, 그들은 정상적인 PHP 따옴표/아포스트로피가 아니기 때문에. –

+0

정확한 오류 메시지를 알려주십시오. –

+0

좋아, 그랬어 - 스 니펫을 복사 할 때 몰래 들어갈 수있는 따옴표와 아포스트로피가 있다는 것을 몰랐다! 감사! –

답변

1

당신이 당신의 쿠키가 만료되면이를 추가 할 수 싶습니다 :

time()+60*60*24*30 

이 쿠키 등등 60 초, 60mins, 24 시간 및 만료 말하는 것과 같다. 여기에 쿠키에 대한 자습서도 나와 있습니다. http://www.w3schools.com/php/php_cookies.asp