2012-10-21 4 views
1

내 사이트의 PHP 세션에서 시간 초과를 제거하려고합니다. 의 결과는 :PHP 세션 시간 초과 제거

var_dump(ini_get('session.save_path')); var_dump(ini_get('session.gc_maxlifetime')); var_dump(ini_get('session.cookie_lifetime')); 

는 (13) "은/var/lib 디렉토리/PHP5"문자열 (4) "1440"문자열 (1)

"0"내가 '포럼에 따르면 문자열입니다 session.cookie_lifetime을 0으로 설정하면 세션이 이미 무제한이어야합니다.

그래서 두 가지 질문 : 세션 시간 초과를 제거하려면 어떤 값을 설정해야합니까? 또한 ... 내가 코드를 .htaccess에 넣어야한다고 생각하지만 .htaccess는 PHP 세션에 영향을 주어야합니까?

+0

왜이 작업을 수행하고 있습니까? 누군가가 브라우저 캐시를 지울 때마다 쿠키를 잃어 버리기 때문에 세션이 재설정됩니다. 왜 세션 시간 초과를 제거 하시겠습니까? –

답변

0

PHP 세션 가비지 수집이 어떻게 작동하는지 잘 모르겠지만 완전히 제거 할 수 있는지 확신 할 수 없습니다. 세션을 유지하려면 주기적으로 세션을 최신 상태로 유지하도록 요청하는 페이지에 일부 JS를 입력하십시오. 브라우저가 닫힌 후에도 사용자가 더 이상 로그인하지 못하게하면 your own cookie을 사용할 수 있습니다.

+0

페이지가 대용량 데이터베이스 테이블을 수정하는 데 사용되므로 완전히 새로 고치고 싶지는 않습니다. 사용자에게 귀찮은 일없이 세션을 유지하기에 충분한 코드는 무엇입니까? –

+0

@KellyLarsen 당신은 그 페이지 자체를 리프레시 할 필요가 없습니다. 아무 것도하지 않고 세션을 시작하고 몇 분 간격으로 핑을 핑할 수있는 다른 페이지를 가질 수 있습니다. –

+0

그냥 아이디어가 있었는데, 매 5 분마다 세션 ID를 다시 생성하는 PHP 페이지를 호출하면 세션 도용을 줄일 수 있습니다. 한 돌로 새를 두 마리 죽이십시오. function KeepAlive() { setTimeout ("CallServer()", 50); } 기능 CallServer() { 전화 regen.php } 가지 않았다 –