PHP에서 쿠키 즉시 설정하기
설정한 쿠키가 바로 배열 $_COOKIE에
나타나게 하려면 영리한 방법을 사용할 수 있습니다.
이 방법의 요점은 다음과 같습니다: 먼저
setcookie를 사용하여 쿠키를 설정한 다음,
수동으로 배열 $_COOKIE에 써넣습니다:
<?php
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
var_dump($_COOKIE['str']); // 바로 'eee'를 출력함
?>
쿠키가 매번 브라우저로 전송되지 않도록 하려면, 쿠키 쓰기를 조건문 안에 넣을 수 있습니다. 해당 쿠키가 없으면, 쿠키를 설정합니다:
<?php
if (!isset($_COOKIE['str'])) { // 쿠키가 없으면
setcookie('str', 'eee');
$_COOKIE['str'] = 'eee';
}
echo $_COOKIE['str']; // 'eee'를 출력함
?>
이것이 어떻게 작동하는지 논의해 봅시다. 첫 번째
페이지 방문 시 if 블록 안으로 들어가,
브라우저에 쿠키를 설정하고 즉시
$_COOKIE에 써넣습니다. 그런 다음 echo를 통해
우리가 수동으로 써넣은 값이 출력됩니다.
다음에 페이지를 방문할 때는 if 블록 안으로
들어가지 않지만, $_COOKIE에는
이미 브라우저에서 온 우리의 쿠키가 담겨 있을 것입니다.
따라서, 첫 방문 때와 이후 방문 때 모두
$_COOKIE 안에 우리의 쿠키가 위치하게 됩니다.
설명된 방법을 시험해 보세요.