[PHP] $_COOKIE

setcookie(name, value, expire, path, domain, secure, httponly);

반환 값
쿠키 생성 성공 = TRUE
쿠키 생성 실패 = FALSE

매개변수 설명
name : 쿠키의 이름
value : 쿠키의 값
expire : 쿠키 유지 시간을 설정 ( time() + 10 = 10초간 쿠키 유지 )
path : 쿠키를 이용할 수 있는 경로              // 기본값 = 웹 문서 경로
domain : 쿠키를 이용할 수 있는 도메인          // 기본값 = 지정안함
secure : HTTPS를 사용할 건지 지정           // 기본값 = FALSE
httponly : secure와 반대로 HTTP로만 접속 할건지 설정    // 기본값 = FALSE

함수 time()은 현재 시간을 출력하는 함수이다.


예시

POST를 이용해 값을 전달해 COOKIE로 저장하는 PHP파일

<form method="post" >
    <h1>LOGIN</h1>
    ID : <input type="text" name="postID"/><br/>
    PW : <input type="password" name="postPW"/><br/>
    <input type="submit" value="LOGIN"/>
</form>
<?php
	if(isset($_POST['postID'])){
		$cookie_name = $_POST['postID'];
		$cookie_value = $_POST['postPW'];

		setcookie('cookie_name', $cookie_name, time() + 10);
		setcookie('cookie_value', $cookie_value, time() + 10);
	}
	if(!isset($_COOKIE['cookie_name'])) {
		echo "Cookie named '" . $cookie_name . "' is not set!";
	} else {
		echo "<p>I D : ".$_COOKIE['cookie_name']."<br/>";
		echo "PW : " . $_COOKIE['cookie_value']."</p>";
	}
?>

분석

1 ~6번째 줄 : POST를 통해 php로 값을 전달 하는 폼(form)
8, 9 번째 줄 : 변수 $cookie_name, $cookie_value에 POST로 값을 입력
 11 번째  줄 : 함수 setcookie()에 name, value, exprie 인자(매개변수)를 전달12~18번 줄 : 함수 isset()을 이용해 쿠키에 이름값이 설정되어 있는지 확인 후
       저장 되어 있으면 출력하는 if ~ else문

isset($변수) 함수는
“$변수”에 값이 입력되어 있는지 확인하는 변수
입력되어있으면 = TRUE
입력되어있지 안으면 = FALSE


Cookie Delete

쿠키를 지우는 방법으로는
setcookie()함수를 이용해 cookie값을 수정해 만료(exprire)시킨다.

예시

<form method="post" >
    <h1>COOKIE DEL</h1>
    DEL : <input type="submit" value="DEL" name="cookieDEL"/>
</form>
<?php
	if($_POST['cookieDEL'] == "DEL"){
		setcookie('cookie_name', "", time() - 10);
		setcookie('cookie_value', "", time() - 10);
		echo $cookie_name."DELETE!";
	}
	else
		echo "Cookie not delete"
?>

분석

1 ~4번째 줄  : POST를 통해 php로 DEL 값을 전달 하는 폼(form)
6~11번째 줄 : DEL 버튼을 눌렀는지 확인하는 if ~ else 문
  7번째  줄     : setcookie함수를 통해 $cookie_name의 만료시간을 되돌려 cookie값을 만료시킴

다만 쿠키값을 만료 했다고 해서
쿠키값이 지워지지는 않는다.


_COOKIE.php
http://silnex.kro.kr/PHP_Tutorial/COOKIE.php 에서 직접 해볼 수 있다.

만약
” Cookie named
‘입력값’
is not set! ”
라고 나오면

F5 키를 눌러
새로고침하면
제대로 나온다.

글의 문제가 있다면 댓글을 달아 주세요.

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.