2014-09-23 2 views
0

php 세션이 서버 메모리에 얼마나 오래 저장되어 있는지 궁금합니다. 사용자가 로그인하여 (서버에 세션 변수 설정) 오랫동안 브라우저를 열어 둔 채로 30 일이 지난 후 31 일째 페이지를 다시로드하면 어떻게됩니까? ? Ca 브라우저가 세션 변수에 액세스합니다 (브라우저에 세션 쿠키가 남아 있습니다)?php 세션이 서버에 얼마나 오래 저장되어 있습니까?

+0

에서 설정에 따라 달라집니다 생각 개방이 브라우저를 왼쪽 얼마나 중요 would't. http://stackoverflow.com/questions/8311320/how-to-change-the-session-timeout-in-php – folkol

+0

을 참조하십시오. HTTP 연결은 상태 저장이 아닙니다. 그들은 연결을 열고 일부 파일을 가져온 다음 닫습니다. 서버는 브라우저로 30 일 동안 무슨 일이 일어나는지 알지 못합니다. – DanFromGermany

답변

5

기본 php.ini는 세션 만료 시간을 30 분으로 설정합니다.

체크 아웃 다음 설정의 session.gc_maxlifetime하고 닫히거나 열려있는 경우

만큼 브라우저가 쿠키가 저장 가지고, 그것은 중요하지 않습니다 session.cookie_lifetime합니다. 당신이 30 일 말을 할 수있는 세션을 저장하려면

, 당신은 추가 할 수 있습니다

ini_set('session.gc_maxlifetime', 30*24*60*60); 
ini_set('session.cookie_lifetime', 30*24*60*60); 
+0

답장을 보내 주셔서 감사합니다. 브라우저가 30 분 후에 세션 변수에 액세스하기 위해 세션 쿠키가있는 요청을 보내면 어떻게 될까요? – user3370495

+0

@ user3370495 세션은 서버에서 관리합니다. 따라서 세션이 만료되면 서버는 사용자가 쿠키를 가지고 있어도 더 이상 쿠키를 인식하지 않습니다. –

+0

cookie_lifetime 기간 (30 분)으로 쿠키가 만료되고 브라우저가 세션 데이터를 자동으로 삭제하므로 세션 데이터가 손실됩니다. 또는 gc_maxlifetime이 만료되면 가비지 수집기가 서버에서 세션 정보를 지워야합니다. –

0

은 보통 약간의 시간이 경과 한 후 세션을 만료하기위한 세션 처리 코드의 일부로서 기능을 코딩 할 것이다, 그래서이 경우 그들이

관련 문제