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의 출력화면
exam2.php의 출력화면
cookie1을 없애는 예제였던exam3.php 실행후에 exam2.php의 화면입니다.
위와같이 cookie1이 없어졌습니다.
다음강좌는 세션입니다.!!