>  기사  >  백엔드 개발  >  PHP 세션 관리

PHP 세션 관리

WBOY
WBOY원래의
2016-08-08 09:21:04960검색
현재 캐시의 만료 시간 읽기/설정
int session_cache_expire ([ string $new_cache_expire ] )
요청이 시작되면 캐시 만료 시간은 180분으로 재설정되어 session.cache_expire 구성 항목에 저장됩니다. 따라서 각 요청에 대해 session_start() 함수 호출 전에 session_cache_expire()를 호출하여 캐시 만료 시간을 설정해야 합니다. new_cache_expire가 제공되면 new_cache_expire 값을 사용하여 현재 캐시 만료 시간을 분 단위로 설정합니다. 기본값은 180(분)입니다.
캐시 제한 읽기/설정
string session_cache_limiter ([ string $cache_limiter ] )
캐시 제한은 클라이언트에 전송되는 HTTP 응답 헤더를 정의합니다. 캐시 제어 전략 안에 . 클라이언트 또는 프록시 서버는 이 응답 헤더 정보를 감지하여 페이지 콘텐츠에 대한 캐싱 규칙을 결정합니다. 캐시 제한기를 다음으로 설정하세요. nocache 는 클라이언트 또는 프록시 서버가 콘텐츠를 캐싱하는 것을 금지합니다. 공개 는 클라이언트 또는 프록시 서버가 콘텐츠를 캐시하는 것이 허용됨을 의미하고, 비공개 는 클라이언트가 캐싱을 수행함을 의미합니다. 캐시는 허용되지만 허용되지 않습니다. 프록시 서버는 콘텐츠를 캐시합니다. 비공개 모드에서 Mozilla를 포함한 일부 브라우저는 다음을 사용하여 Expire 응답 헤더를 올바르게 처리하지 못할 수 있습니다. private_no_expire 모드는 이 문제를 해결할 수 있습니다. 이 모드에서는 Expire 응답 헤더가 클라이언트로 전송되지 않습니다.
현재 세션 ID 가져오기/설정
string session_id ([ string $id ] )
id 매개변수의 값이 지정된 경우 지정된 값을 세션 ID로 사용합니다. session_start() 함수를 호출하기 전에 session_id() 함수를 호출해야 합니다. 세션 관리자마다 세션 ID에 사용할 수 있는 문자에 대한 제한 사항이 다릅니다. 예를 들어 파일 세션 관리자는 세션 ID에 다음 문자만 허용합니다: a-z A-Z 0-9 , (쉼표) 및 - (빼기 기호).
세션 이름 읽기/설정
string session_name ([ string $name ] )
session_name() 함수는 현재 세션 이름을 반환합니다. name 매개변수가 지정되면 session_name() 함수는 세션 이름을 업데이트하고 원래 세션 이름을 반환합니다. 요청이 시작되면 세션 이름이 재설정되어 session.name 구성 항목에 저장됩니다. 따라서 세션 이름을 설정하려면 각 요청에 대해 다음을 호출해야 합니다. session_name() 함수는 session_start() 또는 session_register() 함수 이전에 호출됩니다. 세션 이름은 최소한 한 글자 이상이어야 하며 모두 숫자일 수는 없습니다. 그렇지 않으면 매번 새 세션 ID가 생성됩니다.
현재 세션의 저장 경로 읽기/설정
string session_save_path ([ string $path ] )
세션 데이터를 저장할 경로를 지정합니다. session_start() 함수를 호출하기 전에 session_save_path() 함수를 호출해야 합니다. 일부 운영 체제에서는 많은 수의 작은 파일을 효율적으로 처리할 수 있는 파일 시스템의 경로를 사용하여 세션 데이터를 저장하는 것이 좋습니다. 예를 들어, Linux 플랫폼에서 reiserfs 파일 시스템은 세션 데이터 저장을 위해 ext2fs 파일 시스템보다 더 나은 성능을 제공합니다.
새 세션 시작 또는 기존 세션 재사용
bool session_start ( void )
session_start()는 새 세션을 생성하거나 기존 세션을 재사용합니다. 세션 ID가 GET, POST 또는 쿠키를 사용하여 제출되면 기존 세션이 재사용됩니다.
세션의 모든 데이터 삭제
bool session_destroy ( void )

session_destroy() 현재 세션의 모든 데이터 삭제 모든 데이터 세션, 그러나 현재 세션과 관련된 전역 변수나 세션 쿠키는 재설정되지 않습니다. 세션 변수를 다시 사용해야 하는 경우 session_start() 함수를 다시 호출해야 합니다. 사용자가 로그아웃하는 등 세션을 완전히 삭제하려면 세션 ID도 재설정해야 합니다. 세션 ID가 쿠키를 통해 전송되는 경우 클라이언트의 세션 쿠키를 삭제하려면 setcookie() 함수도 호출해야 합니다.

1. 세션은 현재 $_COOKIE[session_name()];session_name()이 session_id를 저장하는 COOKIE 키 값을 반환하는지 확인합니다. 이 값은 PHP에서 찾을 수 있습니다. .ini. 존재하지 않는 경우 session_id가 생성되고 생성된 session_id는 COOKIE 값으로 클라이언트에 전달됩니다. 이는 다음 COOKIE를 실행하는 것과 같습니다. Operation, 이 단계에서는 setcookie() 작업이 헤더에 전송되며, 이 이전에는 출력할 수 없습니다. PHP에는 또 다른 기능이 있습니다 session_regenerate_id(), 이 함수를 사용하면 이 이전에는 출력이 되지 않습니다.
SetCookie (Session_name (), Session_id (), Session.cookie_lifetime, // 기본값 0 Session.cookie_path, // 기본값 '/' 현재 프로그램과 디렉터리가 적용됩니다
session.cookie_domain,//기본값은 비어 있습니다
                                                                                      ' ' s ’ s ’ s s - s---- ,  SESS_'.session_id() 파일의 내용을 읽고 역직렬화한 다음 $_SESSION에 넣습니다.

2. 예를 들어 새 값을 추가합니다. $_SESSION[ 'test'] ='blah'; 그러면 이 $_SESSION만 유지됩니다. 스크립트 실행이 끝나면 session_id로 지정한 폴더에 $_SESSION 값을 쓴 후 관련 리소스를 닫습니다.



3. SESSION은 일반적으로 인스턴트 쿠키이며 메모리에 저장됩니다. 브라우저가 닫히면 만료됩니다. 로그아웃과 같이 강제로 만료되어야 하는 경우 브라우저를 닫는 대신 SESSION을 삭제해야 합니다. 코드는 다양합니다:
1].

setcookie

(session_name(),session_id(),time() -8000000,..) //로그아웃하기 전에 실행 ].
usset($_SESSION); //새로 고침 후에는 모든 $_SESSION 데이터가 삭제되지만 데이터는 없습니다. 3].
session_destroy();//이 기능은 $_SESSION을 삭제하고 세션 파일과 session_id를 삭제하는 기능입니다. 브라우저를 닫지 않고 다시 새로고침을 하면 2번과 3번에 COOKIE가 전달되는데 데이터를 찾을 수 없습니다.


<?php
    // 初始化会话
    session_name(&#39;Session_test&#39;);
    session_id(&#39;safdsadfasdfsadfasdf&#39;);
    session_start();
    
    $_SERVER[&#39;user&#39;] = &#39;admin&#39;;
    echo $_SERVER[&#39;user&#39;]."<br>";
    
    echo $_COOKIE[session_name()];    
    
    //// 重置会话中的所有变量 -- 使用unset可以重置某个会话变量
//    $_SESSION = array();    
//    // 同时删除会话 cookie
//    if (ini_get("session.use_cookies")) 
//    {
//        $params = session_get_cookie_params();
//        setcookie(session_name(), '', time() - 42000,
//            $params["path"], $params["domain"],
//            $params["secure"], $params["httponly"]);    
//    }
//    // 最后,销毁会话
//    session_destroy(); 
?>

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
</head>

<body>
</body>
</html>
저작권: 이 글은 블로거 Lang Ya Studio의 원본 글입니다. , 블로거의 허락 없이는 복제가 허용되지 않습니다.
위에서는 PHP 세션 관리에 대한 내용을 소개했으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.