수색…


소개

HTTP 쿠키는 사용자가 브라우징하는 동안 웹 브라우저에서 전송되어 사용자의 웹 브라우저에 의해 사용자의 컴퓨터에 저장되는 작은 데이터입니다.

통사론

  • bool setcookie( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool $secure = false [, bool $httponly = false ]]]]]] )

매개 변수

매개 변수 세부 묘사
이름 쿠키의 이름. 이것은 또한 $_COOKIE super global에서 값을 검색하는 데 사용할 수있는 키입니다. 유일한 필수 매개 변수입니다.
쿠키에 저장할 값입니다. 이 데이터는 브라우저에서 액세스 할 수 있으므로 여기에 민감한 정보는 저장하지 마십시오.
내쉬다 쿠키가 만료되어야하는시기를 나타내는 유닉스 타임 스탬프. 0으로 설정하면 쿠키는 세션이 끝날 때 만료됩니다. 현재 Unix 타임 스탬프보다 작은 숫자로 설정하면 쿠키는 즉시 만료됩니다.
통로 쿠키의 범위. / 설정하면 전체 도메인 내에서 쿠키를 사용할 수 있습니다. /some-path/ 로 설정하면 해당 경로와 해당 경로의 하위 항목에서만 쿠키를 사용할 수 있습니다. 기본값은 쿠키가 설정된 파일의 현재 경로입니다.
도메인 쿠키를 사용할 수있는 도메인 또는 하위 도메인입니다. 벌거 벗은 도메인 stackoverflow.com 으로 설정하면 해당 도메인 및 모든 하위 도메인에서 쿠키를 사용할 수 있습니다. 하위 도메인 meta.stackoverflow.com 설정하면 쿠키는 해당 하위 도메인 및 모든 하위 하위 도메인에서만 사용할 수 있습니다.
안전한 TRUE 로 설정하면 클라이언트와 서버간에 보안 HTTPS 연결이있는 경우에만 쿠키가 설정됩니다.
httponly HTTP / S 프로토콜을 통해서만 쿠키를 사용할 수 있도록 지정하고 JavaScript와 같은 클라이언트 측 스크립팅 언어에서는 쿠키를 사용할 수 없도록 지정합니다. PHP 5.2 이상에서만 사용할 수 있습니다.

비고

setcookie 함수를 호출하는 것만으로는 주어진 데이터를 $_COOKIE 글로벌 배열에 넣는 것이 아니라는 점에 주목할 필요가 있습니다.

예를 들어 다음과 같은 작업을 수행 할 필요가 없습니다.

setcookie("user", "Tom", time() + 86400, "/");
var_dump(isset($_COOKIE['user'])); // yields false or the previously set value

그 값은 아직 없습니다. 다음 페이지가로드 될 때까지는 아닙니다. setcookie 는 " 다음 HTTP 연결을 사용하면 클라이언트 (브라우저)에이 쿠키를 설정하도록 지시합니다 "라고 말합니다. 그런 다음 헤더가 브라우저로 전송되면이 쿠키 헤더가 포함됩니다. 그런 다음 브라우저는 쿠키가 아직 만료되지 않았는지 확인한 후 http 요청에서 쿠키를 서버로 전송하고 PHP가 쿠키를 수신하면 그 내용을 $_COOKIE 배열에 저장합니다.

쿠키 설정하기

쿠키는 setcookie() 함수를 사용하여 설정됩니다. 쿠키는 HTTP 헤더의 일부이므로 브라우저에 출력을 보내기 전에 쿠키를 설정해야합니다.

예:

setcookie("user", "Tom", time() + 86400, "/"); // check syntax for function params

기술:

  • 이름이 user 쿠키를 만듭니다.
  • (선택 사항) 쿠키의 값은 Tom
  • (선택 사항) 쿠키는 1 일 후 만료됩니다 (86400 초).
  • (선택 사항) 쿠키는 전체 웹 사이트 /
  • (선택 사항) 쿠키는 HTTPS를 통해서만 전송됩니다.
  • (선택 사항) JavaScript와 같은 스크립팅 언어에는 쿠키에 액세스 할 수 없습니다.

슈퍼 글로벌 $_COOKIE 가 새 데이터로 즉시 채워지지 않으므로 생성되거나 수정 된 쿠키는 후속 요청 ( pathdomain 일치하는 경우)에서만 액세스 할 수 있습니다.

쿠키 가져 오기

쿠키가 지정된 user 검색 및 출력

쿠키의 값은 전역 변수 $_COOKIE 사용하여 검색 할 수 있습니다. 예를 들어 user 라는 이름의 쿠키가있는 경우이를 검색 할 수 있습니다.

echo $_COOKIE['user'];

쿠키 수정하기

쿠키의 값은 쿠키를 재설정하여 수정할 수 있습니다.

setcookie("user", "John", time() + 86400, "/"); // assuming there is a "user" cookie already

쿠키는 HTTP 헤더의 일부이므로 모든 출력을 브라우저에 보내기 전에 setcookie() 를 호출해야합니다.

쿠키를 수정할 때 setcookie()pathdomain 매개 변수가 기존 쿠키와 일치하는지 확인하십시오. 그렇지 않으면 새 쿠키가 대신 만들어집니다.

쿠키의 값 부분은 쿠키를 보낼 때 자동으로 urlencoding되며, 쿠키가 수신되면 자동으로 디코드되고 쿠키 이름과 같은 이름으로 변수에 지정됩니다

쿠키가 설정되어 있는지 확인하기

슈퍼 글로벌 $_COOKIE 변수에 isset() 함수를 사용하여 쿠키가 설정되어 있는지 확인하십시오.

예:

// PHP <7.0
if (isset($_COOKIE['user'])) {
    // true, cookie is set
    echo 'User is ' . $_COOKIE['user'];
else {
    // false, cookie is not set
    echo 'User is not logged in';
}

// PHP 7.0+
echo 'User is ' . $_COOKIE['user'] ?? 'User is not logged in'; 

쿠키 제거

쿠키를 제거하려면 만료 시간 소인을 과거 시간으로 설정하십시오. 그러면 브라우저의 제거 메커니즘이 트리거됩니다.

setcookie('user', '', time() - 3600, '/');

쿠키를 삭제할 때 setcookie()pathdomain 매개 변수가 삭제하려는 쿠키와 일치하는지 확인하거나 즉시 만료되는 새 쿠키가 만들어 지는지 확인하십시오.

또한 현재 페이지에서 $_COOKIE 값을 사용하지 않을 경우 $_COOKIE 값을 설정 해제하는 것이 좋습니다.

unset($_COOKIE['user']);


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow