>백엔드 개발 >PHP 튜토리얼 >PHP에서 `setcookie()`를 사용한 후 내 쿠키 값이 누락되는 이유는 무엇입니까?

PHP에서 `setcookie()`를 사용한 후 내 쿠키 값이 누락되는 이유는 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-14 11:12:12823검색

Why is My Cookie Value Missing After Using `setcookie()` in PHP?

쿠키 접근성 이해

문제: setcookie() 이후 쿠키 값이 예기치 않게 없음

PHP에서 $_COOKIE를 사용하여 setcookie()를 호출한 직후 새로 생성된 쿠키는 원하는 값을 사용할 수 없게 될 수 있습니다. 이 현상은 HTTP 쿠키 처리의 비동기적 특성으로 인해 발생합니다.

A Tale of Time: Client and Server Interactions

setcookie()가 호출되면 PHP 스크립트는 쿠키를 생성하는 명령을 실행합니다. 나가는 HTTP 응답에 이를 포함시킵니다. 그러나 스크립트 실행이 완료될 때까지 응답은 클라이언트(즉, 브라우저)로 전송되지 않습니다.

$_COOKIE 변수는 현재 HTTP 요청에 포함된 쿠키를 반영하므로, 스크립트 실행 중 쿠키에 대한 모든 변경 사항은 서버 측 스크립트 실행은 $_COOKIE에서 즉시 사용할 수 없습니다.

쿠키 가용성 타임라인

설명 타임라인:

  1. setcookie()가 호출됩니다.
  2. 스크립트 실행이 계속되고 $_COOKIE 변수가 수정됩니다.
  3. 스크립트 실행이 완료되면 전체 HTTP 응답 , 새로 생성된 쿠키를 포함하여 클라이언트로 전송됩니다.
  4. 클라이언트 측에서는 새 쿠키가 설정되지만 브라우저는 다음 HTTP 요청까지 이 쿠키를 서버로 다시 보내지 않습니다.
  5. 이후 스크립트 실행에서 $_COOKIE 변수에는 새로 생성된 쿠키의 값이 포함됩니다.

문제 해결

$_COOKIE가 새로 설정된 쿠키 값을 반영하도록 하려면 동일한 쿠키 내에서 이를 재정의할 수 있습니다. script:

이 작업을 수행하면 나가는 HTTP 응답에 쿠키가 생성되고 $_COOKIE 변수에 해당 값이 즉시 설정되어 현재 스크립트 실행 내에서 해당 쿠키에 액세스할 수 있게 됩니다.

위 내용은 PHP에서 `setcookie()`를 사용한 후 내 쿠키 값이 누락되는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.