문제

내가 전화하는 페이지를 쳤다면 session_start(). 페이지를 새로 고치면 새 세션 ID가 발행되도록 얼마나 기다려야합니까?

도움이 되었습니까?

해결책

php.ini session.gc_maxlifetime에 대한 값 세트는 몇 초 만에 ID 수명입니다.

나는 기본값이 1440 초 (24 분)라고 생각합니다.

http://www.php.net/manual/en/session.configuration.php

편집하다: 일부 의견이 지적한 바와 같이, 위는 완전히 정확하지 않습니다. 이유에 대한 훌륭한 설명과 세션 수명을 구현하는 방법은 다음과 같습니다.

30 분 후에 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 도.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top