세션의 기본 수명은 얼마입니까?
호출하는 페이지를 누르면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
'programing' 카테고리의 다른 글
Asp의 Web.config 설정에 액세스합니다.NetCore 앱? (0) | 2023.08.24 |
---|---|
MariaDB: 새 레코드 쓰기를 조건부로 중단하는 삽입 전 트리거 (0) | 2023.08.24 |
도커 컨테이너 노드의 maridia db galera 클러스터 문제 (0) | 2023.08.19 |
DOM에서 중복 ID를 확인하는 JQuery (0) | 2023.08.19 |
jQuery UI 대화 상자 위치 지정 (0) | 2023.08.19 |