PHP setrawcookie() 함수

정의 및 사용법

setrawcookie() 함수는 쿠키 값에 대해 URL 인코딩을 하지 않고, HTTP 쿠키를 전송합니다.

쿠키는 서버가 브라우저로 전송하는 변수입니다. 쿠키는 일반적으로 서버가 사용자 컴퓨터에 삽입하는 작은 텍스트 파일입니다. 컴퓨터가 브라우저를 통해 페이지를 요청할 때마다 이 쿠키가 전송됩니다.

쿠키 이름이 같은 변수로 지정됩니다. 예를 들어, 전송된 쿠키 이름이 "name"이면, 쿠키 값이 포함된 $user이라는 변수가 자동으로 생성됩니다.

기타 모든 출력 전에 쿠키에 값을 할당해야 합니다.

성공하면 true를 반환하고, 실패하면 false를 반환합니다.

문법

setcookie(name,value,expire,path,domain,secure)
파라미터 설명
name 필수. 쿠키의 이름을 지정합니다.
value 필수. 쿠키의 값을 지정합니다.
expire 선택 사항. 쿠키의 유효 기간을 지정합니다.
path 선택 사항. 쿠키의 서버 경로를 지정합니다.
domain 선택 사항. 쿠키의 도메인을 지정합니다.
secure 선택 사항. 쿠키를 보안 HTTPS 연결을 통해 전송할지 여부를 지정합니다.

추가 정보 및 주의사항

주의:"$user"이라는 이름의 쿠키 값에 접근할 수 있습니다. $HTTP_COOKIE_VARS["user"] 또는 $_COOKIE["user"]를 사용합니다.

주의:setrawcookie()와 setcookie() 거의 완전히 동일하지만, 클라이언트로 전송할 때 쿠키 값에 대해 자동 URL 인코딩을 하지 않습니다.

예제

예제 1

쿠키 설정 및 전송:

<?php
$value = "my cookie value";
// 간단한 쿠키를 전송
setrawcookie("TestCookie",$value);
?>
<html>
<body>
...
...
<?php
$value = "my cookie value";
// 24시간 후 만료되는 쿠키를 전송
setrawcookie("TestCookie",$value, time()+3600*24);
?>
<html>
<body>
...
...

예제 2

쿠키 값 검색 방법:

<html>
<body>
<?php
// 출력할 개별 쿠키
echo $_COOKIE["TestCookie"];
echo "<br />";
echo $HTTP_COOKIE_VARS["TestCookie"];
echo "<br />";
// 모든 cookie 출력
print_r($_COOKIE);
?>
</body>
</html>

출력:

my cookie value
my cookie value
Array ([TestCookie] => my cookie value)

예제 3

// 만료 일자를 과거의 날짜/시간으로 설정하여 cookie를 삭제합니다:

<?php
// 만료 일자를 한 시간 전으로 설정
setrawcookie("TestCookie", "", time() - 3600);
?>
<html>
<body>
...
...

예제 4

cookie 배열을 생성합니다:

<?php
setrawcookie("cookie[three]","cookiethree");
setrawcookie("cookie[two]","cookietwo");
setrawcookie("cookie[one]","cookieone");
// cookie 출력 (페이지 다시 로드 후)
if (isset($_COOKIE["cookie"]))
  {
  foreach ($_COOKIE["cookie"] as $name => $value)
    {
    echo "\$name : \$value <br />";
    }
  }
?>
<html>
<body>
...
...

출력:

three : cookiethree
two : cookietwo
one : cookieone