2013-03-06 2 views
0

기본 PHP 세션은 30 분입니다. 내 세션 활동없이 30 분 후 손실,8 시간 PHP 세션이 30 분 후에 데이터 손실 됨

<?php 
session_set_cookie_params(28800); 
session_name('TEST'); 
session_start(); 
session_regenerate_id(true); 

echo $_SESSION['test']; 
?> 

사실은 다음과 같습니다

<?php 
session_set_cookie_params(28800); 
session_name('TEST'); 
session_start(); 
session_regenerate_id(true); 

$_SESSION['test'] = 'jam'; 
?> 

그리고이 두 번째 :

나는이 첫 번째 코드를 얻었다.

시간 초과 예 :

00:00 : run first script 
00:10 : run seconde script : i got "jam" 
00:20 : run seconde script : i got "jam" 
00:40 : run seconde script : i got "jam" 
01:11 : run seconde script : session is lost 

당신이 나에게이 문제를 해결하는 단서를 줄 수 있기를 바랍니다.

답변

3

this answersession_set_cookie_params() 페이지에서 살펴보고 도움이되는지 확인하십시오!

0

쿠키 수명은 방정식의 한 부분 일뿐입니다. 서버 측 세션 저장소는 다른 세션 저장소입니다. session.gc_maxlifetime도 충분히 높게 설정해야합니다.

0

세션 데이터의 실제 수명과 관련이없는 쿠키의 수명 만 설정하고 있습니다. 세션을 파일 시스템에 저장하는 기본 세션 저장 핸들러를 사용하는 경우 세션 데이터의 수명은 session.gc_maxlifetime 지시어로 제어됩니다. 이 같은 ini_set으로이 값을 재정의 할 수

ini_set('session.gc_maxlifetime', 28800); 

당신은 또한 세션을 사용하는 다른 스크립트를 가지고 있고 세션에 대해 동일한 저장 경로를 공유하는 경우, 다음 최소 gc_maxlifetime가 모든 세션에 사용되는 점에 유의 함 예배 규칙서. 따라서 gc_maxlifetime 값을 변경하려면 대개 세션이 저장되는 경로를 지정해야합니다. 당신은 session_save_path 기능을 수행 할 수 있습니다 : 전면 부분에 대한 30 분 세션과 관리 부분에 대한 8시간 세션 :

session_save_path('/path/to/your/sessions'); 
+0

안녕하세요, 답변 주셔서 감사합니다, 나는 내 웹 사이트에이 다른 세션이 필요합니다. session_save_path()를 사용하여 세션에 대한 특정 경로를 정의했다면 (session_set_cookie_params()를 사용하여 정의 할 수있는 경로와 어떤 관계가 있습니까?), 내 ini_set ('session.gc_maxlifetime ', 28800); ? – ERO

+0

공개 세션과 관리 세션간에 세션을 저장해야합니까? 대답이 '예'인 경우 두 세션 모두 8 시간 동안 세션을 완료해야합니다. session.gc_maxlifetime은 동일한 스크립트에서 저장 경로를 설정 한 세션과 관련이 있습니다. 공용 및 관리 파트에 대해 다른 저장 경로를 설정할 수 있으며 세션마다 수명이 다를 수 있습니다. –

관련 문제