이번장에서는 PHP 쿠키에 대해서 알아보겠습니다.
쿠키는 보통 사용자 식별에(로그인, 로그아웃) 사용하는데, 사용자의 컴퓨터에 저장되는 작은 값이라고 보면 됩니다.
어떻게 쿠키를 생성하고 삭제하는지에 대해서 살펴보겠습니다.
기본문법은
setcookie(name, value, expire, path, domain);
처럼 사용합니다.
"user" 라는 쿠키를 만들고 그 값에 "test"를 할당하고 한시간 뒤 만료되도록 하는 구문을 만들어보겠습니다.
<?php
setcookie("user", "test", time()+3600);
?>
// 이렇게 user 라는 쿠키에 test 라는 값이 담길 경우 어떤 페이지에서든 <? echo $user; ?> 의 출력값은 "test" 라는 값이 나오게 됩니다. 단, $user 변수가 중복되지 않도록 주의해야 합니다. 왜냐하면 동일한 변수 $user 을 생성하면 쿠키값이 변경되기 때문입니다. 그리고 한시간 뒤 만료되도록 time()+3600 이라는 값을 주었기 때문에 한시간이 지나면 쿠키는 자동으로 없어지게 됩니다.
그리고 쿠키의 유지 시간을 설정할 수 있는데 위 처럼 초를 사용하는것 보다 쉬울수 있습니다.
<?php
$set_time=time()+60*60*24*30;
// 60*60*24*30 은 대략 짐작가겠지만 60초 60개면 1시간이죠.
// 거기에 24를 곱하면 24시간이며, 또 30을 곱하였기에 30일이 됩니다.
// 그래서 $set_time 는 쿠키를 30일 동안 유지토록 하겠다는 의미가 됩니다.
setcookie("user", "test", $set_time);
?>
그리고 이건 제가 실무에서 많이 사용하는 방법인데 웹브라우저를 닫기 전까지 쿠키를 유지하는 방법입니다.
<?php
setcookie("user", "test", 0, "/");
?>
// 위 처럼 하면 웹브라우저를 닫기 전까지 user 의 쿠키값이 유지 됩니다. 그래고 "/" 부분은 전체 도메인에서 사용하겠다는 의미이며, 예를들어 /test/ 라고 설정을 하면 test 폴더와 그 하위 폴더에서만 쿠키를 사용하겠다는 의미가 됩니다.
그럼 이제 쿠키를 삭제하는 방법에 대해서 알아보겠습니다.
로그인을 했으니 로그아웃을 해야겠죠.
쿠키를 삭제할 경우 쿠키를 생성했던 시간과 동일하게 설정을 해야 합니다. 어떤 의미인지 예제를 보며 확인해 보겠습니다.
<?php
setcookie("user", "", time()-3600);
?>
// 쿠키를 생성할때의 내용과 틀린점을 찾으셨나요? user 의 값을 "" 으로 초기화 하고 3600 으로 시간을 주었다면 그에 해당하는 3600을 빼줍니다.
<?php
$set_time=time()-60*60*24*30;
setcookie("user", "", $set_time);
?>
// 마찬가지로 시간에 "-" 값을 줍니다.
<?php
setcookie("user","",time()-0,"/");
?>
// 위와 동일하다 보면 됩니다.
쿠키를 이용하여 로그인과 로그아웃 페이지를 만들어 보기 바랍니다.
적다보면 실수로 오타 또는 오류가 있을수도 있습니다. 양해바라며 발견시 댓글 주시면 바로 처리토록 하겠습니다.
'PHP > PHP Advanced' 카테고리의 다른 글
PHP Email 구문 (0) | 2013.06.28 |
---|---|
PHP Sessions 구문 (0) | 2013.06.27 |
PHP file upload 구문 (2) | 2013.06.25 |
PHP file 처리 함수 (0) | 2013.06.24 |
PHP include 구문 (0) | 2013.06.21 |