>백엔드 개발 >PHP 튜토리얼 >PHP의 세션 기술 쿠키에 대한 자세한 설명

PHP의 세션 기술 쿠키에 대한 자세한 설명

小云云
小云云원래의
2018-03-31 09:49:182086검색


PHP에서 모든 데이터(변수, 상수, 전역 변수)의 최대 수명 주기는 하나의 스크립트 주기입니다(예: 브라우저가 서버에 요청을 보내고 ---> 서버가 요청에 응답하고 처리합니다) PHP 처리에 대한 요청--->PHP가 처리하고 서버로 반환--->서버가 브라우저로 반환하는 스크립트 주기입니다. 브라우저가 다시 요청하면 이전의 모든 데이터가 유효하지 않게 됩니다.

그러나 사용자 로그인 작업 등 많은 작업의 경우 사용자가 성공적으로 로그인한 후 다시 요청할 때 비밀번호를 입력하지 않고 사용자가 직접 백엔드를 관리할 수 있습니다. 동시에, 사용자가 로그인에 실패하거나 로그인하지 않은 경우에는 백그라운드 URL을 통해 직접 접근할 수 없습니다. 이를 위해서는 여러 스크립트 주기에서 사용할 수 있도록 사용자의 로그인 상태를 기록할 수 있는 데이터가 필요합니다. --------이 크로스 스크립트 사이클 데이터 저장 메커니즘을 세션 기술이라고 합니다.

COOKIE 세션 기술 ---서버 측 스크립트가 브라우저 측에 데이터를 저장할 수 있도록 하는 기술

원리: 1. 서버는 응답 시 스토리지를 관리하라는 명령을 브라우저 측에 보낼 수 있습니다. 브라우저 측에서 쿠키 데이터를 요청합니다.

        2. 브라우저가 서버에서 설정한 쿠키 데이터를 저장한 경우, 요청 시 자동으로 저장된 쿠키 데이터를 서버로 전달합니다.


사용법:

1. 서버의 쿠키 설정(추가, 삭제, 수정, 확인):

setcookie(키, 값)을 통해 쿠키 데이터 설정; ) 쌍
C EG: SetCookie ('name', 'li'); 쿠키 데이터 추가


SetCookie ('name', 'layf');


                   $_COOKIE[ 'key']; 서버 측에서는 브라우저 측에서 전달된 쿠키 데이터를 얻을 수 있으며 그 값은 value입니다.


2. 유효 기간:


setcookie() 함수에서 처음 두 개는 이름-값 설정 외에 세 번째 매개 변수는 유효 시간을 나타냅니다.


Setcookie('name','Li',time()+60); 세 번째 매개변수는 타임스탬프로 계산되므로 time()+60은 생성 후 60초 후에 만료된다는 의미입니다.


기본 유효 기간은 세션 주기 종료(브라우저 종료)이며 임시 쿠키라고도 합니다.

<?php
setcookie(&#39;name&#39;,&#39;Li&#39;);
var_dump($_COOKIE[&#39;name&#39;]);


처음 요청했을 때 쿠키 데이터는 없는데, 브라우저 측 쿠키 테이블에 'name'이라는 쿠키 데이터가 있어서 데이터가 없다고 할 수 있습니다. 브라우저 측의 응답 후에 저장됩니다. 설정이 없을 경우 결과의 만료 시간은 "세션"으로 볼 수 있습니다. 스크립트 작성 시 동일한 브라우저 요청이 사용됩니다.

var_dump($_COOKIE[&#39;name&#39;]);//该文件为cookie_2.php

따라서 브라우저에서 쿠키 데이터를 다시 요청하게 됩니다. 서버에 자동으로 전달됩니다.


3. 유효한 경로

기본적으로 쿠키는 현재 경로와 하위 경로에서 유효합니다. 브라우저가 요청을 하면 먼저 현재 디렉터리에서 유효한 쿠키를 검색한 다음 위쪽으로 검색하여 모든 유효한 쿠키를 서버로 전달합니다. > 사이트는 새 디렉토리에서 유효합니다. 전체 사이트가 유효합니다.


4. 유효한 도메인

쿠키 데이터가 적용될 수 있는 영역을 의미합니다. 기본값은 현재 도메인 이름에서만 유효합니다. 하지만 다섯 번째 매개변수를 통해 설정할 수 있습니다.

setcookie('name','Li',0,'qq.com'); 이 설정은 유효 도메인을 모든 하위 도메인으로 확장할 수 있음을 의미합니다. Q q: www.qq.com// 여기서 QQ.com은 일류 도메인 이름입니다. ㅋㅋ                                                ​置 상단에 4번째 매개변수가 없으면 1단계 도메인 이름에서만 유효하며, 하위 도메인 이름은 유효하지 않습니다.



IE 브라우저에 존재하는 쿠키 데이터입니다.

다른 액세스를 구별하기 위해 도메인을 사용하며 경로는 '/'로 모든 사이트 디렉토리가 유효함을 의미하고 만료는 만료 시간을 의미합니다.

5. 보안 전송만 할지 여부(https://...암호화된 http 프로토콜을 나타냄)

setcookie()의 6번째 매개변수를 true로 설정하면 보안 전송만 옵션을 켤 수 있습니다. 활성화한 후에는 https://....를 요청하는 경우에만 쿠키 데이터가 서버로 전달됩니다. 기본값 false는 보안 전송이 활성화되지 않았음을 의미합니다. 즉, 모든 요청 방법으로 쿠키 데이터를 얻을 수 있습니다.

6.HTTPONLY

setcookie()의 일곱 번째 매개변수를 true로 설정하면 HTTPONLY 옵션을 설정할 수 있습니다. 이 옵션은 쿠키 데이터는 http 요청 중에만 얻을 수 있으며 현재 쿠키 데이터는 얻을 수 없음을 의미합니다. javascript 등의 스크립트를 통해 얻을 수 있습니다.

참고: 1. 쿠키 값은 문자열 유형만 지원합니다. (숫자 유형 데이터는 설정 전에 문자열로 변환될 수 있습니다.)

2. 쿠키 키는 배열 첨자 형식으로 작성할 수 있습니다. ​​​여기에는 항상 두 개의 쿠키가 있습니다(저장 또는 요청 여부). 그러나 시험 기간 동안 PHP는 이를 배열로 구성했습니다.

관련 권장사항:

세션 기술 COOKIE 및 SESSION 예시 요약


PHP 기본 튜토리얼 Seventeen Session Technology COOKIE, SESSION


PHP 세션 기술의 쿠키 예시

위 내용은 PHP의 세션 기술 쿠키에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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