>  기사  >  백엔드 개발  >  PHP에서 쿠키를 사용하는 방법

PHP에서 쿠키를 사용하는 방법

怪我咯
怪我咯원래의
2017-07-05 10:12:541511검색

PHP로 쿠키를 설정하고 읽는 것은 매우 어려운 일입니다. 감히 말할 수 있을까요? - 간단한 것. 우리는 쿠키를 설교하고 싶지 않지만 쿠키는 중요하고 유용합니다. 이는 특정 문제를 해결할 때 사용할 수 있는 유일한 도구입니다.

  쿠키를 생성하고 수정하려면 PHP 함수 setcookie()를 사용하세요. 쿠키에 대해 얼마나 많은 제어권을 갖고 싶은지, 쿠키 값을 읽을 수 있는 사람에 따라 setcookie()는 최대 6개의 매개변수를 가질 수 있습니다.

 쿠키를 설정하는 가장 간단한 방법은 다음과 같습니다:

<?php
setcookie(&#39;name&#39;, &#39;bret&#39;);
?>

 그런 다음 사용자가 exit하기 전에 이 브라우저를 사용하여 보는 사이트의 모든 페이지는 "bret" 값을 가진 변수$name을 갖게 됩니다. PHP를 통해 쉽게 접근할 수 있습니다. 수명은 한 번의 사용자 연결이므로 이러한 유형의 쿠키를 session 쿠키라고 합니다.

 사용자가 브라우저를 닫은 후에도 이 쿠키가 유지되도록 하려면 이 쿠키의 유효 날짜를 설정하는 세 번째 매개변수를 setcookie() 함수에 전달해야 합니다. PHP의 배경은 전적으로 Unix 아이디어에서 파생되었기 때문에 이 만료 날짜는 1970년 1월 1일 이후의 총 초 수로 표시되어야 합니다. Unix 프로그래머라면 이 알고리즘이 이해가 될 것입니다. 하지만 Windows나 Macintosh 쪽 출신이라면 이상한 Unix 사용자를 이해하지 못하고 고개를 저으며 한숨을 쉬게 될 수도 있습니다.

하지만 두려워할 필요는 없습니다. PHP는 매우 유용한 함수 mktime()을 제공합니다. mktime()에 표시하려는 시, 분, 초, 월, 날짜, 연도를 순서대로 전달하면 mktime()은 1970년 1월 1일 이후의 총 초 수를 반환합니다. 따라서 Y2K 문제를 시뮬레이션해야 하는 경우:

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;bret&#39;, $y2k);
?>

이제 쿠키는 2000년에 만료됩니다.

  새로운 값을 저장하기 위해 쿠키를 업데이트해야 하는 경우 원래 값을 덮어쓰기만 하면 됩니다. 따라서 이전 페이지에서 쿠키를 방금 전송했더라도 이름을 "jeff"로 변경할 수 있습니다.

<?php
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k);
?>

 이렇게 해도 $name 변수의 값은 변경되지 않습니다. 해당 값은 페이지가 로드될 때 결정됩니다. 항상 동시에 두 가지를 결정하려면 다음 코드를 작성할 수 있습니다.

<?php
$name = &#39;jeff&#39;;
$y2k = mktime(0,0,0,1,1,2000);
setcookie(&#39;name&#39;, $name, $y2k);
?>

setcookie()의 다음 두 매개 변수는 쿠키를 읽는 프로그램의 도메인과 디렉터리 경로를 제어할 수 있습니다. 기본 설정은 쿠키를 보낸 서버와 동일한 디렉터리 구조 내의 페이지와 동일한 수준 이하의 페이지만 해당 값을 읽을 수 있도록 되어 있습니다. 이는 네트워크 보안 고려 사항 때문입니다. 그러나 "www.domain.com"뿐만 아니라 "other.domain.com"도 포함하는 계정이 있고 해당 계정이 ~/myhome 디렉터리의 페이지 처리를 허용하는 경우 setcookie()를 다음과 같이 변경해야 합니다.

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;, $y2k, &#39;~/myhome&#39;, &#39;.domain.com&#39;);
?>

아직은 없습니다. setcookie()에 사용된 마지막 매개변수는 SSL과 같은 보안 연결을 구현하는 웹 서버에만 쿠키가 전송되도록 설정하는 것입니다. 이 기능을 사용하려면 여섯 번째 값을 1로 설정하세요.

쿠키 삭제는 매우 간단합니다. 쿠키 이름을 setcookie()에 전달하면 PHP가 이를 삭제합니다.

<?php
setcookie(&#39;name&#39;);
?>

 마지막으로 쿠키 사용에 있어서 중요한 주의사항이 하나 있습니다. 쿠키가 HTTP에서 작동하는 방식으로 인해 텍스트를 출력하기 전에 모든 쿠키를 보내야 합니다. 그렇지 않으면 PHP에서 경고를 표시하고 쿠키가 전송되지 않습니다. 따라서 올바른 방법은 다음과 같습니다.

<?php
setcookie(&#39;name&#39;, &#39;jeff&#39;);
echo "Hello Everyone!";
?>

잘못된 방법은 다음과 같습니다.

<?php
$today = mktime(12,0,0,6,25,1999);
echo &#39;Here it is &#39;.date(&#39;g:i:s a, F d, Y&#39;,$today);
echo &#39;&#39;;
echo &#39;In GMT it is &#39;.gmdate(&#39;g:i:s a, F d, Y&#39;,$today);
?>

위 내용은 PHP에서 쿠키를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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