이 함수의 작동은 php.ini 설정에 영향을 받습니다.
이름 | 기본값 | 변경권한 | 변경 기록 |
---|---|---|---|
session.save_path | "" | PHP_INI_ALL | |
session.name | "PHPSESSID" | PHP_INI_ALL | |
session.save_handler | "files" | PHP_INI_ALL | |
session.auto_start | "0" | PHP_INI_ALL | |
session.gc_probability | "1" | PHP_INI_ALL | |
session.gc_divisor | "100" | PHP_INI_ALL | PHP 4.3.2부터 사용 가능. |
session.gc_maxlifetime | "1440" | PHP_INI_ALL | |
session.serialize_handler | "php" | PHP_INI_ALL | |
session.cookie_lifetime | "0" | PHP_INI_ALL | |
session.cookie_path | "/" | PHP_INI_ALL | |
session.cookie_domain | "" | PHP_INI_ALL | |
session.cookie_secure | "" | PHP_INI_ALL | PHP 4.0.4부터 사용 가능. |
session.cookie_httponly | "" | PHP_INI_ALL | PHP 5.2.0부터 사용 가능. |
session.use_cookies | "1" | PHP_INI_ALL | |
session.use_only_cookies | "1" | PHP_INI_ALL | PHP 4.3.0부터 사용 가능. |
session.referer_check | "" | PHP_INI_ALL | |
session.entropy_file | "" | PHP_INI_ALL | |
session.entropy_length | "0" | PHP_INI_ALL | |
session.cache_limiter | "nocache" | PHP_INI_ALL | |
session.cache_expire | "180" | PHP_INI_ALL | |
session.use_trans_sid | "0" | PHP_INI_ALL | PHP < 4.2.3에서 PHP_INI_ALL. PHP < 5에서 PHP_INI_PERDIR. PHP 4.0.3부터 사용 가능. |
session.bug_compat_42 | "1" | PHP_INI_ALL | PHP 4.3.0부터 사용 가능. PHP 6.0.0에서 제거. |
session.bug_compat_warn | "1" | PHP_INI_ALL | PHP 4.3.0부터 사용 가능. PHP 6.0.0에서 제거. |
session.hash_function | "0" | PHP_INI_ALL | PHP 5.0.0부터 사용 가능. |
session.hash_bits_per_character | "4" | PHP_INI_ALL | PHP 5.0.0부터 사용 가능. |
url_rewriter.tags | "a=href,area=href,frame=src,form=,fieldset=" | PHP_INI_ALL | PHP 4.0.4부터 사용 가능. |
PHP_INI_* 모드에 대한 상세와 정의는 환경 설정을 바꿀 수 있는 곳를 참고하십시오.
세션 관리 시스템은 php.ini 파일에서 설정할 수 있는 옵션을 지원합니다. 간단한 설명이 아래 있습니다.
세션 파일이 퍼질 디렉토리 단계를 지정하는 선택적인 N 인수 지시어가 있습니다. 예를 들어, '5;/tmp'로 지정하면 세션 파일을 생성할 때 /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If처럼 위치합니다. N을 사용하기 전에 이러한 디렉토리를 생성해야 합니다. 이를 위해 mod_files.sh로 불리는 작은 쉘 스크립트가 ext/session에 존재합니다. 윈도우 버전은 mod_files.bat입니다. N이 사용되고 0보다 크면 자동 쓰레기 수거를 수행하지 않습니다. php.ini에서 자세한 정보를 확인하십시오. 또한, N을 사용할 때 session.save_path를 "따옴표"로 감싸야 합니다. 구분자(;)가 php.ini에서 주석으로 사용되기 때문입니다.
이 설정을 /tmp(기본값)처럼, 누구라도 읽을 수 있는 디렉토리로 설정하면, 서버의 다른 사용자가 그 디렉토리 목록을 얻어서 세션을 훔칠 수 있습니다.
Note: PHP 4.3.6 이전에 윈도우 사용자가 PHP 세션 함수를 사용하려면, 이 값을 변경해야 합니다. 유효한 경로를 지정해야 합니다. 예: c:/temp.
Note: 서로 다른 스크립트에서 서로 다른 값의 session.gc_maxlifetime을 가질 수 있지만, 세션 데이터 저장에 같은 공간을 사용하면 최소값을 가진 스크립트가 데이터를 청소합니다. 이런 경우, 이 지시어를 session.save_path와 함께 사용하십시오.
Note: 기본 파일 기반 세션 핸들러를 사용할 때, 파일시스템이 접근 시간(atime)을 추적할 수 있어야 합니다. 윈도우 FAT는 그렇지 않기에, FAT 파일시스템이나 atime 추적이 없는 다른 파일시스템에 세션을 저장할 경우 세션 쓰레기 수거를 다룰 다른 방법을 고려해야 합니다. PHP 4.2.3부터 atime 대신에 mtime(변경 시각)을 사용합니다. 그러므로, atime 추적이 없는 파일시스템에서도 문제가 없습니다.
Note: 만료 타임스탬프는 서버 시간에 상대적으로 설정되므로, 클라이언트 브라우저가 같은 시간일 필요는 없습니다.
Note: PHP 4.1.2까지, --enable-trans-sid로 컴파일시에 활성화했습니다. PHP 4.2.0부터, trans-sid 기능은 항상 컴파일됩니다. URL 기반 세션 관리는 쿠키 기반 세션 관리에 비하여 추가적인 보안 위험이 있습니다. 예를 들면, 사용자가 활성적인 세션 ID를 포함하는 URL을 email로 친구에게 보낼 수도 있으며, 사용자가 세션 ID를 포함하는 URL을 즐겨찾기에 저장하여 항상 같은 세션 ID로 접근할 수도 있습니다.
PHP 6.0.0부터 sha512나 whirlpool처럼, 해시 확장(사용할 수 있다면)에서 제공하는 어떠한 알고리즘이라도 지정할 수 있습니다. 지원하는 모든 알고리즘의 목록은 hash_algos() 함수로 얻을 수 있습니다.
Note: 이 지시어는 PHP 5에서 추가되었습니다.
Note: 이 지시어는 PHP 5에서 추가되었습니다.
Note: HTML/XHTML strict 호환하게 하려면, form 엔트리를 제거하고 폼 필드 주위에 <fieldset> 태그를 사용하십시오.
track_vars와 register_globals 환경 설정이 세션 변수의 저장과 복구에 영향을 줍니다.
Note: PHP 4.0.3부터, track_vars는 항상 켜져 있습니다.