>  기사  >  백엔드 개발  >  PHP는 쿠키를 어떻게 작동합니까?

PHP는 쿠키를 어떻게 작동합니까?

青灯夜游
青灯夜游앞으로
2019-11-29 14:21:232449검색

PHP는 쿠키를 어떻게 작동합니까?

쿠키는 클라이언트의 컴퓨터에 저장되고 추적 목적으로 보관되는 텍스트 파일입니다. PHP는 HTTP 쿠키를 투명하게 지원합니다.

재방문 사용자를 식별하는 데는 세 단계가 필요합니다

● 서버 스크립트는 일련의 쿠키를 브라우저에 보냅니다. 나이 등.

● 브라우저는 나중에 사용할 수 있도록 이 정보를 귀하의 컴퓨터에 로컬로 저장합니다.

● 다음에 브라우저가 웹 서버에 요청을 보낼 때 보낸 이 쿠키 정보를 사용합니다. 사용자를 식별하기 위해 정보를 사용하는 서버에.

이 장에서는 쿠키 설정 방법, 쿠키 액세스 방법 및 삭제 방법을 설명합니다.

쿠키 분석

쿠키는 일반적으로 HTTP 헤더에 설정됩니다(JavaScript가 브라우저에서 직접 쿠키를 설정할 수도 있음). 쿠키를 설정하는 PHP 스크립트는 다음과 같은 헤더를 보낼 수 있습니다(브라우저 F12, 네트워크에서 볼 수 있음)

HTTP/1.1 200 OK
Date: Fri, 04 Feb 2000 21:03:38 GMT
Server: Apache/1.3.9 (UNIX) PHP/4.0b3
Set-Cookie: name=xyz; expires=Friday, 04-Feb-07 22:03:38 GMT; 
                 path=/; domain=jc2182.com
Connection: close
Content-Type: text/html

보시다시피 Set-Cookie 헤더에는 이름-값 쌍, GMT 날짜가 포함됩니다. , 경로 및 도메인. 이름과 값은 URL로 인코딩됩니다. 만료 필드는 주어진 시간과 날짜 이후에 쿠키를 삭제하라는 브라우저의 지시입니다. 브라우저가 쿠키를 저장하도록 구성된 경우 이 정보는 만료일까지 유지됩니다. 사용자가 쿠키의 경로 및 도메인과 일치하는 페이지를 브라우저에 지정하면 쿠키가 서버로 다시 전송됩니다. 브라우저 제목은 다음과 같습니다.

GET / HTTP/1.0
Connection: Keep-Alive
User-Agent: Mozilla/4.6 (X11; I; Linux 2.2.6-15apmac ppc)
Host: zink.demon.co.uk:1126
Accept: image/gif, */*
Accept-Encoding: gzip
Accept-Language: en
Accept-Charset: iso-8859-1,*,utf-8
Cookie: name=xyz

그러면 PHP 스크립트는 모든 쿠키 이름과 값이 포함된 환경 변수 $_COOKIE에 액세스할 수 있습니다.

PHP로 쿠키 설정

PHP는 쿠키를 설정하는 setcookie() 함수를 제공합니다. 이 함수는 최대 6개의 매개변수를 사용하며 태그 전에 호출해야 합니다. 이 함수는 각 쿠키 세트에 대해 개별적으로 호출되어야 합니다.

setcookie(name, value, expire, path, domain, security);

모든 매개변수의 세부정보는 다음과 같습니다

 ● name - 쿠키의 이름을 설정합니다.

● 값 - 명명된 변수의 값을 설정하며 저장하려는 실제 콘텐츠입니다.

● Expire - 1970년 1월 1일 00:00:00 GMT 이후의 미래 시간(초)을 지정합니다. 이 시간이 지나면 쿠키에 접근할 수 없습니다. 이 매개변수가 설정되지 않으면 웹 브라우저가 닫힐 때 쿠키가 자동으로 만료됩니다.

 ● path - 쿠키가 유효한 디렉터리를 지정합니다. 단일 슬래시 문자를 사용하면 쿠키가 모든 디렉터리에 대해 유효할 수 있습니다.

●Domain - 매우 큰 도메인에서 도메인 이름을 지정하는 데 사용할 수 있으며 유효 기간이 두 개 이상 포함되어야 합니다. 모든 쿠키는 쿠키가 생성된 호스트와 도메인에 대해서만 유효합니다.

● security - 쿠키가 HTTPS를 사용하는 보안 전송을 통해서만 전송되어야 함을 지정하려면 1로 설정하고, 그렇지 않으면 쿠키가 일반 HTTP를 통해 전송될 수 있음을 의미하는 0으로 설정될 수 있습니다.

다음 예에서는 이름과 나이라는 두 개의 쿠키를 생성합니다. 이 쿠키는 1시간 후에 만료됩니다.

<?php
   setcookie("name", "John Watkin", time()+3600, "/","", 0);
   setcookie("age", "36", time()+3600, "/", "",  0);
?>
<html>
   
   <head>
      <title>用PHP设置Cookies</title>
   </head>
   
   <body>
      <?php echo "设置 Cookies"?>
   </body>
   
</html>

팁: time() 함수는 현재 타임스탬프를 반환합니다. 이는 1970년 1월 1일 0:00:00부터 스크립트가 실행되는 순간까지의 초 수입니다. .

브라우저를 열어 스크립트에 액세스한 다음 F12를 눌러 개발자 모드를 열고 네트워크 탭을 선택한 다음 헤더를 선택하면 다음 그림을 볼 수 있습니다.

# 🎜 🎜#

PHP는 쿠키를 어떻게 작동합니까?

PHP를 사용하여 쿠키에 액세스

PHP는 쿠키에 액세스하는 다양한 방법을 제공합니다. 가장 쉬운 방법은 $_COOKIE 변수를 사용하는 것입니다. 다음 예에서는 위 예에서 설정된 모든 쿠키에 액세스합니다.

<html>
   
   <head>
      <title>用PHP访问cookie</title>
   </head>
   
   <body>
      
      <?php
         echo $_COOKIE["name"]. "<br />";
         
         echo $_COOKIE["age"] . "<br />";
  
      ?>
      
   </body>
</html>

isset() 함수를 사용하여 쿠키가 설정되었는지 확인할 수 있습니다. 설정한 경우 출력합니다.

<html>
   
   <head>
      <title>用PHP访问cookie</title>
   </head>
   
   <body>
      
      <?php
         if(isset($_COOKIE["name"]))
                echo $_COOKIE["name"]. "<br />";
         if(isset($_COOKIE["age"]))
                echo $_COOKIE["age"] . "<br />";
  
      ?>
      
   </body>
</html>

PHP로 쿠키 삭제

공식적으로 말하면, 쿠키를 삭제하려면 이름 매개변수와 함께 setcookie()를 호출하면 됩니다. 이는 해당 이름을 삭제하고 비워두기를 원한다는 의미입니다.] 그러나 이것이 항상 작동하는 것은 아니며 의존해서는 안 됩니다. 가장 안전한 방법은 만료 날짜를 설정하는 것입니다

/ 과거 시간을 현재 시간보다 60초 전으로 설정/

<?php
   /* 设置过去时间为当前时间的之前的60秒 */
   setcookie( "name", "", time()- 60, "/","", 0);
   setcookie( "age", "", time()- 60, "/","", 0);
?>
<html>
   
   <head>
      <title>用PHP删除cookie</title>
   </head>
   
   <body>
      <?php echo "删除cookie" ?>
   </body>
   
</html>

추천 학습:

PHP 튜토리얼 #🎜 🎜#

위 내용은 PHP는 쿠키를 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 51cto.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제