쿠키 값을 얻기 위해 PHP $_COOKIE를 사용할 때, 때때로 얻은 값이 저장된 값과 다른 상황이 발생할 수 있습니다. 이때 코드를 디버깅하고 검사해야 합니다.
다음은 획득한 쿠키 값이 저장된 값과 다를 수 있는 몇 가지 이유를 소개합니다.
쿠키 자체는 표준 HTTP 프로토콜의 요청 헤더이므로 쿠키를 저장할 때 사용하는 변수 이름은 쿠키를 검색할 때 사용하는 변수 이름과 일치해야 합니다. 변수 이름이 일치하지 않으면 얻은 값은 저장된 값과 다릅니다.
예:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/'); // 获取cookie时 $test = $_COOKIE['Test'];
이 예에서는 쿠키를 저장할 때 사용한 변수 이름이 'test'인데, 가져올 때 'Test'를 사용하므로 얻은 값과 저장된 값이 다릅니다.
변수 이름과 마찬가지로 쿠키 작업 경로도 일관성이 있어야 합니다. 쿠키를 저장할 때 작업 경로를 지정했지만 검색할 때는 지정하지 않은 경우 얻은 값과 저장된 값이 다릅니다.
예:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/test'); // 获取cookie时 $test = $_COOKIE['test'];
이 예에서는 쿠키를 저장할 때 작업 경로를 '/test'로 지정하지만, 쿠키를 가져올 때는 지정하지 않아 값이 달라집니다.
쿠키를 저장할 때 만료 시간을 지정했지만 쿠키를 얻을 때 만료 시간이 지나면 얻은 값은 null이 됩니다.
예:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/'); // 过了过期时间再获取cookie时 sleep(3605); $test = $_COOKIE['test'];
이 예에서는 저장된 쿠키의 만료 시간이 1시간 늦었지만 쿠키를 얻을 때 만료 시간이 지나서 얻은 값이 null이 됩니다.
쿠키가 저장된 도메인 이름과 쿠키를 얻은 도메인 이름이 일치하지 않으면 얻은 쿠키 값도 저장된 쿠키 값과 다릅니다.
예:
// 存入cookie时 setcookie('test', 'abc', time() + 3600, '/', '.example.com'); // 在另一个域名上获取cookie时 $test = $_COOKIE['test'];
이 예에서는 쿠키를 저장할 때 도메인 이름 '.example.com'을 지정했지만, 다른 도메인 이름에서 쿠키를 얻은 경우 쿠키를 얻지 못하거나 다른 값이 표시됩니다. 얻을 수 있습니다.
요약:
교차 도메인 쿠키 문제를 방지하려면 변수 이름, 작업 경로, 만료 시간 및 도메인 이름이 일치하는지 확인하세요. 획득한 쿠키 값이 저장된 값과 다른 이유는 다음과 같습니다. 코드를 디버깅할 때 불필요한 오류를 방지하려면 이러한 문제에 주의해야 합니다.
위 내용은 php $_cookie 값이 저장된 값과 다른 이유에 대한 간략한 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!