Cookie

쿠키란.

쿠키는 사용자가 웹 서버에 접속하여 로그인하였을때 접속과 관련된 어떠한 정보를 클라이언트 컴퓨터에 저장해 놓은 것을 의미하며,
어떤 사이트에 로그인을 하게 되면 사용자 컴퓨터에 쿠키를 저장해 놓고 그 쿠키를 갖고 있는지를 확인하여 회원인지 아닌지를 판단한다.

쿠키의 총용량은 4kb밖에 되지 않고 더 많은 정보를 사용하려면 데이터베이스를 사용해야 한다.

쿠키 생성하기


쿠키 생성및 삭제 함수는 setcookie()이다. 헤더에 보낼 쿠키를 정의 하기 때문에 가장먼저 선언해야 한다.

setcookie("쿠키 이름","쿠키 값",폐기시간,"경로","호스트","보안사용")

경로에는 / 로 설정하면 전체 도메인에서 쿠키를 사용하며, /apm/ 로 설정하면 그 디렉토리와 하위 디렉토리에 적용됩니다.
호스트에는 쿠키가 적용될 호스트 이름을 넣습니다.
보안사용에는 https프로토콜에 true로 설정할 경우 보안접속 시에만 쿠키 생성이 됩니다.

ob_start() 함수는 출력 버퍼링이라는 기능을 사용하도록 해주는 함수로서 페이지의 첫 부분에 사용하면 출력문의 출력내용을 출력하지 않고, 페이지의 내용을 모두 처리한 다음에 비로소 출력문의 내용을 출력합니다.

다음은 쿠키를 가장 먼저 선언하지 않고 ob_start()함수를 사용한 경우 입니다.

<?php
 ob_start();
 echo "쿠키생성 -> 쿠키이름 [cook_test], 쿠키 값[apm] <br />";
 echo "===============================================<br />";
 echo "출력버퍼링 ob_start() 를 사용하였으므로 echo문이 먼저 나와도 쿠키를 생성합니다. <br />";
 setcookie("cook_test","apm");
 echo "생성된 쿠키 이름 [cook_test], 쿠키값 : [apm] 입니다. <br />";
?>

ob_start()함수를 사용하면 setcookie가 제일 앞에 나오지 않아도 됩니다만 사용하지 않으려면 위에서 설명했듯이 제일 먼저 나와야 합니다.
아래는 그냥 보시기만 하세요.

<?php
setcookie("second","001");
echo "쿠키 생성 성공 -->>>>>> <br />";
echo "========================== <br />";
echo "1. 쿠키이름........... second <br />";
echo "2. 쿠키 값............ 001 <br />";
?>

다음 예제로 공부를 해봅시다.

그럼 2개의 예제로 쿠키에 대해 알아봅시다.

다음 예제는 쿠키를 2개 생성한 예제 입니다. 하나는 30초동안 존재하게 되어있고 하나는 15초동안 존재하게 되어있습니다.

아래의 소스를 exam1.php로 저장합시다.

<?php
 $cook1 = setcookie("cookie1","apm",time()+30);
 $cook2 = setcookie("cookie2","che",time()+15);

 echo "쿠키를 생성하는 setcookie() 함수 사용 <br />";
 echo "======================================<br />";
 if($cook1 && $cook2){
  echo "두 개의 쿠키가 생성되었습니다. <br />";
  echo "1. 쿠키이름 : <b>cookie1</b> | 쿠키 값: apm <br />";
  echo "2. 쿠키이름 : <b>cookie2</b> | 쿠키 값 : che <br />";
  echo "쿠키는 30/15초간 지속됩니다. <br />";
 }else{
  echo "쿠키가 생성되지 않았습니다. <br />";
 }
?>

다음 예제는 위의 소스에서 쿠키가 얼마간 존재하는지를 확인해보는 소스입니다.
아래의 소스를 exam2.php로 저장합시다.

<?php
echo "생성된 쿠키 사용하기 <br />";
echo "1. 생성된 cookie1 쿠키...... [";
echo $_COOKIE['cookie1']."] <br />";
echo "2. 생성된 cookie2 쿠키 .... [";
echo $_COOKIE['cookie2']."]<br />";
echo "------------------------------ <br />";
echo "이 쿠키는 80초후에 자동으로 삭제 됩니다. <br />";
?>


첫번째 예제를 띄워 보시고

그후 두번째 예제를 띄우신후 15초 후에 새로고침 30초 후에 새로고침을 해보세요.~

이번엔 쿠키를 삭제해봅시다.
아래의 소스를 exam3.php로 저장합시다.

<?php
 setcookie("cookie1");
?>

exam1.php를 띄우시고 바로 exam3.php를 띄우신후 exam2.php를 확인하시면 결과를 확인하실수 있습니다.

exam1.php의 출력화면

php image

exam2.php의 출력화면

php image

cookie1을 없애는 예제였던exam3.php 실행후에 exam2.php의 화면입니다.

php image

위와같이 cookie1이 없어졌습니다.
다음강좌는 세션입니다.!!