간단 한 PHP 세 션(session)설명

6772 단어 session회화PHP
현재 프로그래머 들 이 점점 쉽 지 않 아 지고 있다.정통 하려 면 반드시 본 소원 을 찾 아야 한다.이것 은 현재 범람 하고 있 는 고급 언어 와 많은 구조 와 정반 대 이다.왜냐하면 그들 은 가능 한 한 본원 을 덮 고 간단 하 게 만 들 고 프로그래머 가 역설 을 배우 기 때문이다.
주:저 자 는 웹 개발 과 phop 을 2 주 정도 접 했 고 다음 내용 은 초보 자 에 게 적합 합 니 다.
1.안내
문 제 를 보면'간단 한 PHP 세 션(Session)설명'은 이미 본문의 내용 범 위 를 정 하여 Session(글 에서 세 션 이 라 고 함)이 PHP 언어 에서 어떻게 실현 되 고 사용 되 는 지 밝 히 려 는 것 으로 기본 적 인 이해 후의 사용 에 중점 을 두 고 있다.
글 의 사고방식 은 세 션 이 무엇 인지,세 션 이 무슨 소 용이 있 는 지,세 션 이 사용 하 는 방식 이 무엇 인지,PHP 에서 어떻게 사용 하 는 지 를 먼저 파악 하 는 것 이다.
2.세 션 설명
시작 하기 전에 먼저 프로그래머 기초 필수 지식 인 기초 이론 서인'HTTP 권위 지침'을 추천 합 니 다.저 자 는 전자 판이 있어 필요 한 것 이 있 으 면 메 시 지 를 남 길 수 있 습 니 다.
a.세 션 의 유래
거의 모든 사람 이 인터넷 에 접속 하고 수 억 개의 데이터 가 네트워크 에서 서로 전송 된다.데이터 가 안전하게 전 송 될 수 있 는 이 유 는 HTTP 프로 토 콜 을 바탕 으로 하 는 것 이기 때문에 귀 에 익다.그 렇 죠?사실 HTTP 프로 토 콜 이 하 는 일 은 네트워크 접근 을 완성 하 는 일련의 방법 을 제공 하 는 것 입 니 다.쌍방 은 한 번 의 방문 을 구 축 했 습 니 다.원칙적으로 세 션 이 구 축 된 것 입 니 다.예 를 들 어 샤 오 밍 은 브 라 우 저 에 입력 합 니 다.https://www.baidu.com/(HTTPS 는 HTTP 의 암호 화 버 전 입 니 다.SSL 암호 화 층 이 추 가 된 것 보다)샤 오 밍 이 바 이 두 에 게"당신 의 화면 을 보고 싶 습 니 다"라 고 요청 한 것 입 니 다.바 이 두 서버 들 은 메 시 지 를 받 았 습 니 다.메시지 에는 작은 이름 이 하고 싶 은 일이 포함 되 어 있 습 니 다.또한 샤 오 밍 의 주소(그렇지 않 으 면 바 이 두 는 내용 을 누구 에 게 주 었 는 지 모른다)를 포함 하고 서버 에서 정 보 를 확인 하 며 샤 오 밍 이라는 요청 을 등록 하고 샤 오 밍 이 원 하 는 것 을 보 내 완전한 요청 이 끝났다.이것 이 바로 세 션 입 니 다.세 션 의 핵심 은 샤 오 밍 의 정보 등록 에 있 습 니 다.(사실은 TCP/IP 의 연결 문제 도 관련 되 어 있 습 니 다.이것 은 본 논문 과 무관 하고 무시 합 니 다)
사실 하나의 세 션 을 구축 했다 기보 다 는 한 번 의 방문 을 하나의 세 션 으로 요약 하 는 것 이 낫다.
b.세 션 이 무슨 소 용이 야
위의 내용 을 통 해 알 수 있 듯 이 모든 방문 은 하나의 세 션 이 고 서버 는 정 보 를 등록 해 야 한다.이것 은 비용 이 있 는 것 이다.또한 같은 사람 이 10 번 20 번 연속 방문 하면 10 번 20 번 저장 을 구축 할 수 없다.하 나 는 비용 을 늘 리 는 것 이 고 다른 하 나 는 어 리 석 은 것 이다.즉,한 사람(정확히 말 하면 같은 컴퓨터 와 브 라 우 저)이 특정한 시간 안에 하나의 세 션 을 재 활용 할 수 있 는데 왜 특정한 시간 안에 있 습 니까?세 션 은 기본 적 인 만 료 시간 이 있 기 때문에 만 료 되면 서버 가 지 워 집 니 다.
ok.같은 사람 이 여러 번 방문 하 는 것 은 하나의 Session(서버 가 같은 사람 이 라 고 판단 할 수 없다 고 의심 하지 마 세 요.구체 적 으로 위 에서 소개 한 책 을 볼 수 있 습 니 다)이 고 매번 방문 하 는 내용 은 등록 되 어 있 습 니 다.그러면 Session 주기 에 모든 행위 서버 가 알 고 있 습 니 다.그러면 다음 중요 한 역할 이 있 습 니 다.서버 는 방문 요청 분석 을 통 해 이 특정 사용자 의 행동 이 선 호 하 는 것 을 알 수 있 습 니 다.일정한 분석 을 통 해 일부 사용자 가 관심 을 가 지 는 데 이 터 를 전송 할 수 있 습 니 다.광고 방향 은 바로 이 렇 습 니 다. 
물론 다른 사용자,성능 등 도 있 을 수 있 습 니 다.개인 은 메커니즘 을 특별히 이해 하지 못 합 니 다.여기 가 이 렇 습 니 다.
3.PHP 에서 의 세 션 사용
위의 솔 기 를 통 해 세 션 이라는 개념 은 사실 서버 에서 발생 한 것 임 을 알 수 있다.PHP 는 일련의 설정,함수 등 을 제공 하여 세 션 기능 을 잘 실현 합 니 다.Session 지원 은 PHP 에서 동시 방문 시 하나의 방법 으로 일부 데 이 터 를 저장 합 니 다.따라서 더 많은 맞 춤 형 프로그램 을 구축 하여 웹 사이트 의 흡인력 을 높 일 수 있 습 니 다.한 방문 자가 웹 사 이 트 를 방문 하면 유일한 id 가 분 배 됩 니 다.이른바 session id 입 니 다.이 id 는 사용자 측의 쿠키 에 저장 할 수 있 습 니 다.URL 로 도 전달 할 수 있 습 니 다.요청 한 데 이 터 를 초 전역 배열 에 저장 할 수 있 도록 세 션 지원$SESSION 에서 방문 자가 웹 사 이 트 를 방문 하면 PHP 가 자동 으로 검 사 됩 니 다(session.autostart 가 1 로 설정 되 었 거나 요구 에 따라 검사(session 을 통 해 명확 하 게start()또는 암시 적 으로 sessionregister()현재 session id 가 이전에 보 낸 요청 으로 만 들 어 졌 는 지 여부 입 니 다.이 경우 이전에 저 장 된 환경 이 재 건 됩 니 다.
a.php 에서 session 기본 용법
각 독립 된 사용자 에 게 유일한 Session ID 를 할당 함으로써 서로 다른 사용 자 를 대상 으로 각각 데 이 터 를 저장 하 는 기능 을 수행 할 수 있다.세 션 은 보통 여러 페이지 요청 사이 에 정 보 를 저장 하고 공유 하 는 데 사 용 됩 니 다.일반적으로 세 션 ID 는 쿠키 를 통 해 브 라 우 저 에 전송 되 며 서버 에서 도 세 션 ID 를 통 해 세 션 의 데 이 터 를 되 찾 습 니 다.요청 에 세 션 ID 정보 가 포함 되 어 있 지 않 으 면 PHP 에서 새 세 션 을 만 들 고 새로 만 든 세 션 에 새 ID 를 할당 합 니 다.
세 션 의 작업 절 차 는 매우 간단 하 다.세 션 을 시작 할 때 PHP 는 요청 에서 세 션 ID(보통 세 션 쿠키 를 통 해)를 찾 으 려 고 시도 합 니 다.요청 에 세 션 ID 정보 가 포함 되 어 있 지 않 으 면 PHP 는 새로운 세 션 을 만 듭 니 다.세 션 이 시작 되면 PHP 는 세 션 의 데 이 터 를$로 설정 합 니 다.SESSION 변수 중.PHP 가 멈 추 면$를 자동 으로 읽 습 니 다.SESSION 의 내용 을 정렬 한 다음 세 션 저장 관리자 에 보 내 저장 합 니 다.기본적으로 PHP 는 내 장 된 파일 Session 저장 관리자(files)를 사용 하여 Session 저장 을 완료 합 니 다.설정 항목 session.save 를 통 해서 도 가능 합 니 다.handler(php.ini 설정 항목)에서 사용 할 세 션 저장 관리 자 를 수정 합 니 다.파일 세 션 저장 관리자 에 대해 세 션 세 션 데 이 터 를 설정 항목 session.save 에 저장 합 니 다.path(php.ini 에서 항목 설정)가 지정 한 위치 입 니 다.호출 함수 sessionstart 에서 세 션 을 수 동 으로 시작 합 니 다.설정 항목 session.autostart 를 1 로 설정 하면 시작 을 요청 할 때 세 션 이 자동 으로 시 작 됩 니 다.PHP 스 크 립 트 가 실행 되면 session 이 자동 으로 종 료 됩 니 다.동시에 호출 함수 sessionwirte_close()세 션 을 수 동 으로 닫 습 니 다.
b.phop 에서 session 정 보 를 phop.ini 에서 설정 합 니 다.
이 부분 은 앞의 문 제 를 설명 하지 않 고 phop.ini 의 설정 이 무엇 인지 알 고 있 기 때 문 이 라 고 합 니 다.위 에서 언급 한 session.savehandler 와 session.savepath,이 두 가 지 는 php.ini 의 설정 항목 입 니 다.이 안 에는 자세히 말 하지 않 습 니 다.php 매 뉴 얼 이 너무 상세 하기 때 문 입 니 다.이 글 의 기본 모드 는 files 입 니 다.
c.phop 의 session 메커니즘
session_start()는 session 메커니즘 의 시작 입 니 다.session 은 현재$가 있 는 지 여 부 를 판단 합 니 다.COOKIE[session_name()];session_name()세 션 저장 되 돌리 기id 의 COOKIE 키,존재 하지 않 으 면 session 생 성id,그리고 생 성 된 sessionid 는 COOKIE 의 값 으로 클 라 이언 트 에 전 달 됩 니 다.아래 COOKIE 작업 을 수행 한 것 과 같 습 니 다.반대로 session 이 존재 한다 면id =$_COOKIE[session_name];그리고 session.savepath 가 지정 한 폴 더 에서'SESS'라 는 이름 을 찾 습 니 다.session_id()의 파일 입 니 다.파일 의 내용 을 거꾸로 읽 고$세 션 중 에
세 션 이 끝 날 때 세 션 쓰기 동작 을 실행 하거나 세 션 을 수 동 으로 실행 합 니 다write_close()조작.
코드 안에 Session 을 없 애 는 방법 은 보통 세 가지 가 있 습 니 다.
1. setcookie(session_name(),session_id(),time() -8000000,..); //로그 인 종료 전 실행
2. usset($_SESSION); //이것 은 모든$를 삭제 합 니 다세 션 데이터,새로 고침 후 쿠키 가 전 달 됐 지만 데이터 가 없 었 습 니 다.
3. session_destroy(); //삭제$SESSION session 파일 및 session 삭제id
부록,네트워크 의 코드 를 인용 하여 끝 냅 시다.

<span style="white-space:pre">  </span>//SESSION         
   function open($save_path, $session_name) 
   { 
    global $sess_save_path; 
    $sess_save_path=$save_path; 
    return(true); 
   } 
 
   //        
   function close() 
   { 
    return(true); 
   } 
 
   function read($id) 
   { 
    global $sess_save_path; 
    $sess_file="$sess_save_path/sess_$id"; 
    return (string) @file_get_contents($sess_file); 
   } 
   //        ,       
   function write($id,$sess_data) 
   { 
 
    global$sess_save_path; 
 
    $sess_file="$sess_save_path/sess_$id"; 
    if ($fp= @fopen($sess_file,"w")) { 
     $return=fwrite($fp,$sess_data); 
     fclose($fp); 
     return$return; 
    } else { 
     return(false); 
    } 
 
   } 
     
   function destroy($id) 
   { 
    global $sess_save_path; 
 
    $sess_file="$sess_save_path/sess_$id"; 
    return(@unlink($sess_file)); 
   } 
 
   function gc($maxlifetime) 
   { 
    global$sess_save_path; 
 
    foreach (glob("$sess_save_path/sess_*") as$filename) { 
     if (filemtime($filename) +$maxlifetime<time()) { 
      @unlink($filename); 
     } 
    } 
    return true; 
   }
이상 의 간단 한 PHP 세 션(session)설명 소 개 는 편집장 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 에 게 참고 가 되 고 많은 사랑 을 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기