>백엔드 개발 >PHP 튜토리얼 >PHP 세션 작동 메커니즘을 이해하는 방법

PHP 세션 작동 메커니즘을 이해하는 방법

清浅
清浅원래의
2019-02-14 17:42:144042검색

PHP 세션 작동 메커니즘은 클라이언트가 세션 ID를 서버에 전달하고 서버는 세션 ID를 기반으로 해당 파일을 찾아 역직렬화하여 세션 값을 얻는 것입니다. , 그리고 저장합니다. 먼저 직렬화한 후

을 작성하면, 오늘 공유할 지식 포인트는 PHP에서 세션을 실행하는 메커니즘입니다. PHP에 익숙한 개발자에게는 낯설지 않지만 말입니다. 이제 막 시작한 사람들에게는 낯설지 않습니다. 매우 이해할 수 있습니다. 다음 글에서는 참고 효과가 있는 PHP의 세션 운영 메커니즘을 자세히 소개하겠습니다.

PHP 세션 작동 메커니즘을 이해하는 방법# 🎜🎜## 🎜🎜#

【추천 강좌:

PHP tutorial

PHP 세션 운영 메커니즘 의미: #🎜 🎜##🎜 🎜#

PHP 세션 작동 메커니즘은 클라이언트가 세션 ID를 서버에 전달하는 것입니다. 서버는 읽을 때 파일 내용을 역직렬화하여 세션을 가져옵니다. 값을 저장할 때 직렬화한 다음

PHP 세션 메커니즘 분류

PHP에는 두 가지 메커니즘, 즉 기본 메커니즘이 있습니다. 및 사용자 정의 메커니즘을 정의합니다.

기본 메커니즘

php.ini 구성:

session.save_handler = files

이 사용됩니다 다음 부분으로 구성된 PHP 세션을 구현하기 위한 디스크 파일:

session_start()

session_start()는 세션의 시작입니다. 메커니즘은 가비지 수집을 활성화할 확률이 있습니다. 이 확률은 php.ini의 구성에 따라 결정됩니다. 일부 시스템에서는 session.gc_probability = 0, 즉 확률이 0이고 #🎜🎜이 없기 때문입니다. #은 $_session 할당

새 값 추가는 메모리에만 유지됩니다. 스크립트 실행이 끝나면 $_session 값을 session_id로 지정된 폴더에 쓴 후 닫습니다. 관련 리소스. 이 단계에서는 이전 session_id를 삭제하고 새 session_id를 생성하는 등 session_id를 변경하는 작업을 수행할 수 있습니다. 이는 일반적으로 사용자 정의 세션 작업에 사용됩니다

Example

:

if (isset($_COOKIE[session_name()])) {
            setcookie(session_name(),'',time() -42000,'/');//旧session cookie过期
          }
          session_regenerate_id();//这一步会生成新的session_id
         //session_id()返回的是新的值

쓰기 세션 작업#🎜🎜 #

스크립트 마지막에 세션 쓰기 작업이 수행되고 $_session의 값이 session_id라는 이름의 파일에 기록됩니다. 이미 존재할 수도 있고 새 파일이 필요할 수도 있습니다. 생성됩니다.


Destroy session

세션에서 보낸 쿠키는 일반적으로 인스턴트 쿠키이며 메모리에 저장됩니다. 브라우저를 닫을 때까지 만료되지 않지만, 브라우저를 닫지 않고 그냥 로그아웃하려는 경우에는 코드에서 세션을 삭제해야 합니다.

예:

1. setcookie(session_name(),session_id(),time() -8000000,..);//退出登录前执行
2. usset($_SESSION);//这会删除所有的$_SESSION数据,刷新后,有COOKIE传过来,但是没有数据。
3. session_destroy();//这个作用更彻底,删除$_SESSION 删除session文件,和session_id

사용자 정의 세션 처리 메커니즘# 🎜🎜#PHP 세션 작동 메커니즘을 이해하는 방법php.ini 구성

session.save_handler = user
사용자 정의 처리 메커니즘은 다음 부분으로 나눌 수 있습니다# 🎜🎜 #

session_start()

open($save_path,$session_name) 문을 실행하여 세션 작업 핸들을 엽니다.

Execute read( $id)에서 읽으려면 데이터 가져오기

Note: $save_path는 이 경우 직접 true를 반환합니다

스크립트 실행이 종료됩니다.

#🎜 🎜#

write($id,$sess_data) 문 실행

세션 삭제

해야 합니다. 사용자가 세션을 삭제해야 하는 경우 먼저 삭제를 실행한 다음 2단계를 실행해야 합니다

요약: 위 내용은 전체 내용입니다 이 기사가 모든 사람에게 도움이 되기를 바랍니다.

php 중국어 네트워크 학습 주제

php 세션PHP 세션 작동 메커니즘을 이해하는 방법(사진, 텍스트, 동영상, 사례 포함)

# 🎜🎜#

위 내용은 PHP 세션 작동 메커니즘을 이해하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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