문제
내가 전화하는 페이지를 쳤다면 session_start()
. 페이지를 새로 고치면 새 세션 ID가 발행되도록 얼마나 기다려야합니까?
해결책
php.ini session.gc_maxlifetime에 대한 값 세트는 몇 초 만에 ID 수명입니다.
나는 기본값이 1440 초 (24 분)라고 생각합니다.
http://www.php.net/manual/en/session.configuration.php
편집하다: 일부 의견이 지적한 바와 같이, 위는 완전히 정확하지 않습니다. 이유에 대한 훌륭한 설명과 세션 수명을 구현하는 방법은 다음과 같습니다.
다른 팁
php.ini의 기본값 session.gc_maxlifetime
지침 ( "GC"는 쓰레기 수집 용)은 1440 초 또는 24 분입니다. 매뉴얼의 세션 런타임 구성 페이지를 참조하십시오.
http://www.php.net/manual/en/session.configuration.php
액세스 할 수있는 경우 또는 웹 사이트의 로컬 .htaccess 파일에서 php.ini 또는 .httpd.conf 파일 에서이 상수를 변경할 수 있습니다. .htaccess 메소드를 사용하여 타임 아웃을 1 시간으로 설정하려면 사이트의 루트 디렉토리에있는 .htaccess 파일 에이 줄을 추가하십시오.
php_value session.gc_maxlifetime "3600"
공유 호스트에 있거나 기본값을 변경하지 않은 사이트를 호스팅하는 경우 조심하십시오. 기본 세션 위치는 /TMP 디렉토리이며, Garbage Collection 루틴은 이러한 다른 사이트의 경우 24 분마다 실행됩니다 (그리고 프로세스에서 세션을 얼마나 오래 닦아내는지. ~해야 한다 보관). 참조 노트 매뉴얼 페이지 또는 이 지역 더 나은 설명을 위해.
이에 대한 답은 세션을 Session.save_path를 사용하여 세션을 다른 디렉토리로 옮기는 것입니다. 또한 나쁜 사람이 기본 /TMP 디렉토리에서 방문자 세션을 납치하지 못하게합니다.
사용자에 따르면 php.net 사이트, 세션을 살아있게하려는 그의 노력은 실패했기 때문에 해결 방법을 만들어야했습니다.
<?php
$Lifetime = 3600;
$separator = (strstr(strtoupper(substr(PHP_OS, 0, 3)), "WIN")) ? "\\" : "/";
$DirectoryPath = dirname(__FILE__) . "{$separator}SessionData";
//in Wamp for Windows the result for $DirectoryPath
//would be C:\wamp\www\your_site\SessionData
is_dir($DirectoryPath) or mkdir($DirectoryPath, 0777);
if (ini_get("session.use_trans_sid") == true) {
ini_set("url_rewriter.tags", "");
ini_set("session.use_trans_sid", false);
}
ini_set("session.gc_maxlifetime", $Lifetime);
ini_set("session.gc_divisor", "1");
ini_set("session.gc_probability", "1");
ini_set("session.cookie_lifetime", "0");
ini_set("session.save_path", $DirectoryPath);
session_start();
?>
SessionData 폴더에서는 세션 정보를 보유하기위한 텍스트 파일이 저장되며 각 파일은 "sess_a_big_hash_here"와 유사한 이름을 갖습니다.
PHP 설정에 따라 다릅니다 ...
사용 phpinfo()
그리고 세션 장을 살펴보십시오. 같은 값이 있습니다 session.gc_maxlifetime
그리고 session.cache_expire
그리고 session.cookie_lifetime
세션 수명에 영향을 미칩니다
편집 : 마틴이 전에 쓰는 것과 같습니다
그러나 대부분의 XAMPP/AMPP /..
php.ini :
; Lifetime in seconds of cookie or, if 0, until browser is restarted.
; http://php.net/session.cookie-lifetime
session.cookie_lifetime = 0
당신은 같은 것을 사용할 수 있습니다 ini_set('session.gc_maxlifetime', 28800); // 8 * 60 * 60
도.