programing

PHP : 세션의 기본 수명은 얼마입니까?

randomtip 2021. 1. 15. 08:08
반응형

PHP : 세션의 기본 수명은 얼마입니까?


내가 호출하는 페이지를 치면 session_start(). 페이지를 새로 고치려면 새 세션 ID를 발급 받으려면 얼마나 기다려야합니까?


session.gc_maxlifetime에 대해 설정된 값은 php.ini를 확인하십시오.

기본값은 1440 초 (24 분)입니다.

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

편집 : 일부 의견이 지적했듯이 위의 내용은 완전히 정확하지 않습니다. 세션 수명을 구현하는 이유와 방법에 대한 멋진 설명은 여기에서 확인할 수 있습니다.

30 분 후에 PHP 세션을 만료하려면 어떻게합니까?


session.gc_maxlifetime지시어 에 대한 php.ini의 기본값 ( "gc"는 가비지 수집 용)은 1440 초 또는 24 분입니다. 매뉴얼의 세션 런타임 구성 페이지를 참조하십시오.

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

이 상수는 php.ini 또는 .httpd.conf 파일 (액세스 권한이있는 경우) 또는 웹 사이트의 로컬 .htaccess 파일에서 변경할 수 있습니다. .htaccess 메서드를 사용하여 시간 제한을 1 시간으로 설정하려면 사이트의 루트 디렉터리에있는 .htaccess 파일에 다음 줄을 추가합니다.

php_value session.gc_maxlifetime "3600"

공유 호스트에 있거나 기본값을 변경하지 않은 사이트를 둘 이상 호스팅하는 경우주의하십시오. 기본 세션 위치는 / tmp 디렉토리이며 가비지 수집 루틴은 이러한 다른 사이트에 대해 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_maxlifetimesession.cache_expiresession.cookie_lifetime세션 수명에 영향을 미치는

편집 : 마틴 쓰기 전에


그러나 대부분의 xampp / ampp /...- setup 및 일부 Linux 배포에서는 0입니다. 즉, 스크립트 내에서 수행 할 때까지 파일이 삭제되지 않습니다 (또는 셸을 통해 더티).

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같은 것을 사용할 수 있습니다 .

참조 URL : https://stackoverflow.com/questions/156712/php-what-is-the-default-lifetime-of-a-session

반응형