[PHP 고급] PHP 쿠키(Cookies)
쿠키는 사용자를 확인하는데 주로 사용됩니다.
쿠키란 무엇인가?
쿠키는 주로 사용자를 확인하는데 사용됩니다.
쿠키는 서버가 사용자의 컴퓨터에 살짝 저장해두는 작은 파일입니다.
같은 컴퓨터가 브라우저로 페이지를 요청할때마다, 쿠키도 함께 보내지게 됩니다.
PHP에서는, 쿠키값을 만들고, 값을 얻는것 모두 가능합니다.
어떻게 쿠키를 만드는가?
setcookie() 함수는 쿠키를 설정하는데 사용됩니다.
참고: setcookie() 함수는 반드시 <html> 태그 전에 나와야 합니다.
문법
setcookie(name, value, expire, path, domain); |
name: 쿠키변수명, value: 변수값, expire: 만료일, path: 쿠키가 사용될 위치지정, domain: 쿠키가 사용될 도메인 지정
예제
아래 예에서는, "user" 라는 변수명을 가진 쿠키를 만들고, "Sirjhswin" 이라는 값을 그 변수에 할당합니다.
그리고 나서는, 쿠키가 한시간 뒤에 만료되도록 지정합니다:
<?php setcookie("user", "Sirjhswin", time()+3600); ?> <html> <body> </body> </html> |
참고: 쿠키의 값은 쿠키가 보내질때 자동적으로 URL 인코딩 됩니다. 받을때도 자동적으로 디코딩 됩니다. (URL 인코딩이 안되도록 하시려면, setrawcookie() 함수를 대신 사용하세요).
쿠키값을 어떻게 얻는가?
PHP의 $_COOKIE 변수가 쿠키값을 얻는데 사용됩니다.
아래의 예에서는, 쿠키변수명이 "user"인 쿠키의 값을 얻어서
페이지에 표시하게 합니다:
<?php // 모든 쿠기 보기 print_r($_COOKIE); ?> |
아래의 예에서는, isset() 함수를 사용해서 쿠키가 설정되어 있는지의 여부를 확인합니다:
<html> <body> <?php if (isset($_COOKIE["user"])) echo $_COOKIE["user"] . "님, 환영합니다!<br />"; else echo "방문자 여러분을 환영합니다!<br />"; ?> </body> </html> |
쿠키를 어떻게 지우는가?
쿠키를 지울때에는 만기 날짜가 이미 지났는지 확실히 확인하세요.
삭제 예제:
<?php // 만기 날짜를 한시간 전으로 설정 setcookie("user", "", time()-3600); ?> |
브라우저가 쿠키를 지원하지 않을땐 어떻게 하나?
만일 브라우저가 쿠키를 지원하지 않을 경우에는, 한페이지에서 다른페이지로 정보를 전달하는 데에
다른 방법을 사용해야 할겁니다.
한가지 방법은 폼을 이용해 데이터를 보내는겁니다.
(폼과 사용자 input 텍스트 박스, 폼 전송 등등은 이전 포스트에서 다룬적이 있습니다.)
아래의 폼은, 사용자가 "전송(Submit)" 버튼을 클릭할때 입력한 정보를 "welcome.php" 파일로 보냅니다:
<html> <body> <form action="welcome.php" method="post"> 이름: <input type="text" name="name" /> 나이: <input type="text" name="age" /> <input type="submit" /> </form> </body> </html> |
"welcome.php" 파일에서는 아래와 같이 값을 얻습니다:
<html> <body> <?php echo $_POST["name"]; ?>님, 환영합니다.<br /> 나이는 <?php echo $_POST["age"]; ?>살 입니다. </body> </html> |