setcookie를 사용하여 특정 페이지에 쿠키를 설정합니다. 예:
setcookie("id",$id, time()+36002430);
그런데 홈페이지에 돌아와 보니 javascript:alert(document.cookie)를 사용할 때 쿠키가 비어 있는 것을 발견했습니다. , PHP의 $_COOKIE에도 데이터가 없습니다.
PHP 공식 홈페이지에 가서 setcookie에 대한 설명을 확인해보세요. 공식 홈페이지에 있는 예제도 이와 같은데, 매개변수 설명을 잘 살펴보니 문제가 발견되었습니다.
관련 권장사항: "php Getting Started Tutorial"
setcookie의 네 번째 매개변수는 path:
The path on the server in which the cookie will be available on. If set to ‘/’, the cookie will be available within the entire domain. If set to ‘/foo/’, the cookie will only be available within the /foo/ directory and all sub-directories such as /foo/bar/ of domain. The default value is the current directory that the cookie is being set in.
입니다. 즉, 네 번째 매개변수가 비어 있으면 기본적으로 현재 디렉터리에만 적용됩니다. 정상적인 상황에서는 문제가 발생하지 않습니다.
하지만 제 사이트는 rewrite로 설정되어 있고 index.php는 숨겨져 있어서 쿠키 세트는 이 페이지에서만 유효합니다.
해결책은 4번째 매개변수를 추가하는 것입니다:
setcookie("id",$id, time()+36002430 ,'/');
위 내용은 PHP가 쿠키 설정에 실패하면 어떻게 해야 할까요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!