programing

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

muds 2023. 8. 24. 22:28
반응형

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

호출하는 페이지를 누르면session_start()페이지를 새로 고칠 때 새 세션 ID를 얻을 때까지 얼마나 기다려야 합니까?

checkout 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

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

php_value session.gc_maxlifetime "3600"

공유 호스트에 있거나 기본값을 변경하지 않은 두 개 이상의 사이트를 호스트하는 경우에는 주의하십시오.기본 세션 위치는 /tmp 디렉토리이며 가비지 수집 루틴은 이러한 다른 사이트에 대해 24분마다 실행됩니다(또한 보관 기간에 관계없이 프로세스에서 세션을 삭제합니다).자세한 설명은 설명서 페이지 또는 이 사이트의 참고 사항을 참조하십시오.

이에 대한 대답은 session.save_path를 사용하여 세션을 다른 디렉토리로 이동하는 것입니다.이렇게 하면 불량 사용자가 기본 /tmp 디렉토리에서 방문자 세션을 가로채는 것을 방지할 수 있습니다.

당신의 php 설정에 따라 다릅니다...
사용하다phpinfo()세션 챕터를 살펴봅니다.다음과 같은 값이 있습니다.session.gc_maxlifetime그리고.session.cache_expire그리고.session.cookie_lifetime세션 수명에 영향을 미칩니다.

편집: 마틴이 전에 쓴 것과 같습니다.

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();

?>

세션 데이터 폴더에는 세션 정보를 저장하기 위한 텍스트 파일이 저장되며, 각 파일의 이름은 "sess_a_big_hash_here"와 유사합니다.

다음과 같은 것을 사용할 수 있습니다.ini_set('session.gc_maxlifetime', 28800); // 8 * 60 * 60도 마찬가지야

그러나 대부분의 xampp/amppp/... 설치 및 일부 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

언급URL : https://stackoverflow.com/questions/156712/what-is-the-default-lifetime-of-a-session

반응형