PHP 쿠키에서는 점(마침표)을 사용할 수 없습니다. 실제로는 쿠키 이름에 점을 사용할 수 있다고 해야 하지만 쿠키 이름은 다음과 같이 지정됩니다.
php가 자동으로 변환했으며 마침표는 밑줄로 변환되었습니다.
PHP는 왜 이런 일을 할까요? 이는 $_GET/$_POST/$_SERVER/$_COOKIE 때문입니다. . . 이러한 전역 함수의 값은 많은 이전 버전에서 Register_globals 매개변수를 통해 로컬로 직접 액세스할 수 있습니다. 예를 들어, Register_globals = on을 켠 후 $my_name에 직접 액세스하면 값이 1이 됩니다. $my.name이면 PHP 변수 명명 원칙을 따르지 않습니다. 이것은 단지 마침표(.)의 문제가 아닙니다.
따라서 $_COOKIE의 이름은 이미 PHP 이름 지정 표준을 준수합니다.
register_globals도 활성화하면 다음과 같이 스크립트의 원래 값을 덮어쓸 수 있으므로 잘못된 결정입니다.
// 기타 코드
$uc_is_login = true;
// ...
기본적으로 로그인하려면 사용자는 url?a=1로 http 요청만 보내면 됩니다. 이는 매우 위험한 관행이므로 중단해야 합니다. 실제로 php6에서는 이 옵션이 제거되었습니다.