>  기사  >  백엔드 개발  >  점(마침표)을 사용한 PHP 쿠키 이름이 변환됩니다._php 팁

점(마침표)을 사용한 PHP 쿠키 이름이 변환됩니다._php 팁

WBOY
WBOY원래의
2016-05-16 20:34:171540검색

이 제목은 그다지 엄격하지 않습니다. 도트 쿠키 이름을 사용할 수 있지만 쿠키 이름은 다음과 같이 변환됩니다.

$_COOKIE['my.name'] = 1;

실제로 'my.name'을 통해 쿠키에서 이 값을 찾을 수 없으며 'my_name'만 찾을 수 있습니다.

echo $_COOKIE['my_name'];

php가 자동으로 변환했으며 마침표는 밑줄로 변환되었습니다.

PHP는 왜 이런 일을 할까요? 이는 $_GET/$_POST/$_SERVER/$_COOKIE 때문입니다. . . 이러한 전역 함수의 값은 많은 이전 버전에서 Register_globals 매개변수를 통해 로컬로 직접 액세스할 수 있습니다. 예를 들어, Register_globals = on을 켠 후 $my_name에 직접 액세스하면 값이 1이 됩니다. $my.name이면 PHP 변수 명명 원칙을 따르지 않습니다. 이것은 단지 마침표(.)의 문제가 아닙니다.

따라서 $_COOKIE의 이름은 이미 PHP 이름 지정 표준을 준수합니다.

register_globals도 활성화하면 다음과 같이 스크립트의 원래 값을 덮어쓸 수 있으므로 잘못된 결정입니다.

// 기타 코드
만약 ($a)
$uc_is_login = true;
// ...

기본적으로 로그인하려면 사용자는 url?a=1로 http 요청만 보내면 됩니다. 이는 매우 위험한 관행이므로 중단해야 합니다. 실제로 php6에서는 이 옵션이 제거되었습니다.

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