최신 웹 개발 튜토리얼
 

PHP setcookie() Function

<PHP HTTP 참조

다음 예제라는 이름의 쿠키 생성 "user" 값으로 "John Doe" . 쿠키는 30 일 후에 만료됩니다 (86400 * 30) . 는 "/" 쿠키가 전체 웹 사이트에서 사용할 수 있음을 의미합니다 (otherwise, select the directory you prefer) .

우리는 다음 쿠키의 값 검색 "user" (글로벌 변수 $ _COOKIE을 사용하여). 우리는 또한 사용 isset() 쿠키가 설정되어 있는지 확인하는 기능 :

<!DOCTYPE html>
<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
»실행 예

정의 및 사용

setcookie() 함수는 쿠키가 HTTP 헤더의 나머지 부분과 함께 보내도록 정의합니다.

쿠키는 종종 사용자를 식별하는 데 사용됩니다. 쿠키는 서버가 사용자의 컴퓨터에 내장 작은 파일입니다. 동일한 컴퓨터 브라우저로 페이지를 요청할 때마다, 너무 쿠키를 보내드립니다. PHP로 작성하고 쿠키 값을 검색 할 수 있습니다 둘 다.

쿠키의 이름이 자동으로 같은 이름의 변수에 할당됩니다. 쿠키는 이름으로 전송 된 경우 예를 들어, "user" , 변수는 자동으로 쿠키 값을 포함, $ 사용자라고 생성됩니다.

Note: setcookie() 함수가 전에 나타나야 <html> 태그입니다.

Note: 쿠키의 값이 쿠키를 전송할 때 자동 urlencoded를 그리고 수신시 자동으로 디코딩된다 (에는 urlencoding 사용의 방지 setrawcookie() 대신).

통사론

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

매개 변수 기술
name 필요합니다. 쿠키의 이름을 지정합니다
value 선택 과목. 쿠키의 값을 지정합니다
expire 선택 과목. 쿠키가 만료 될 때 지정합니다. 값 : time() + 86400 * 30, 30 일 만료 쿠키를 설정합니다. 이 파라미터가 생략되거나 0으로 설정되면, 쿠키가 세션의 끝에서 만료 (when the browser closes) . 기본값은 0입니다
path 선택 과목. 쿠키의 서버 경로를 지정합니다. 로 설정하면 "/" , 쿠키는 전체 도메인 내에서 사용할 수 있습니다. 로 설정하면 "/php/" 쿠키 만의 PHP 디렉토리와 PHP의 모든 하위 디렉토리 내에서 사용할 수 있습니다. 기본값은 쿠키를 설정하는 현재 디렉토리입니다
domain 선택 과목. 쿠키의 도메인 이름을 지정합니다. example.com의 모든 하위 도메인에 쿠키를 사용할 수 있도록하려면에 도메인을 설정 "example.com" . www.example.com으로 설정하면이 쿠키는 www 서브 도메인에서만 사용할 수 있도록합니다
secure 선택 과목. 쿠키는 안전한 HTTPS 연결을 통해 전송되어야할지 여부를 지정합니다. TRUE는 보안 연결이 존재하는 경우 쿠키는 설정을 나타냅니다. 기본값은 FALSE입니다
httponly 선택 과목. TRUE로 설정하면 쿠키에만 HTTP 프로토콜을 통해 액세스 할 수 있습니다 (the cookie will not be accessible by scripting languages) . 이 설정은 XSS 공격을 통해 신원 도용을 줄이는 데 도움이 될 수 있습니다. 기본값은 FALSE입니다

기술적 세부 사항

반환 값 : 성공 TRUE. 실패 FALSE
PHP 버전 : 4+
PHP 변경 내역 : PHP 5.5 - 맥스 에이지 속성은 클라이언트로 전송의 Set-Cookie 헤더에 포함
PHP 5.2 - Http 만 인수 추가

더 예

일부는 쿠키 기간 만료 :

<?php
$value = "Hello world!";

// cookie will expire when the browser close
setcookie("myCookie", $value);

// cookie will expire in 1 hour
setcookie("myCookie", $value, time() + 3600);

// cookie will expire in 1 hour, and will only be available
// within the php directory + all sub-directories of php
setcookie("myCookie", $value, time() + 3600, "/php/");
?>
<html>
<body>

...some code...

</body>
</html>
»실행 예

단지 설정 쿠키, 수정하려면 (again) 사용하여 쿠키 setcookie() 함수를 :

<?php
$cookie_name = "user";
$cookie_value = "Alex Porter";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/");
?>
<html>
<body>

<?php
if(!isset($_COOKIE[$cookie_name])) {
    echo "Cookie named '" . $cookie_name . "' is not set!";
} else {
    echo "Cookie '" . $cookie_name . "' is set!<br>";
    echo "Value is: " . $_COOKIE[$cookie_name];
}
?>

</body>
</html>
»실행 예

사용, 쿠키를 삭제하려면 setcookie() 과거에 만료 날짜 기능 :

<?php
// set the expiration date to one hour ago
setcookie("user", "" , time() - 3600);
?>
<html>
<body>

<?php
echo "Cookie 'user' is deleted.";
?>

</body>
</html>
»실행 예

여부를 확인하는 작은 스크립트 만들기 cookies 활성화됩니다. 첫째, 함께 테스트 쿠키를 만들려고 setcookie() 다음 함수는 $ _COOKIE 배열 변수를 계산 :

<?php
setcookie("test_cookie", "test" , time() + 3600, '/');
?>
<html>
<body>

<?php
if(count($_COOKIE) > 0) {
    echo "Cookies are enabled.";
} else {
    echo "Cookies are disabled.";
}
?>

</body>
</html>
»실행 예

<PHP HTTP 참조