PHP 슈퍼 글로벌 변수 및 Register_Globals
PHP에는 특수한 종류의 변수가 있는데,이를 슈퍼 글로벌이라고합니다. 이 변수가 특별한 이유는 프로그래머가 자신의 프로그램에서 변수를 만들거나 정의하지 않고도 모든 PHP 프로그램에서 자동으로 사용할 수 있기 때문입니다. 이를 "내장"변수로 생각할 수 있습니다.

이러한 변수에 액세스하는 방법은 서버에서 register_globals가 켜져 있는지 여부에 따라 다릅니다. PHP 버전 4.2 이전에는 register_globals가 기본적으로 켜져있었습니다. 그러나 보안상의 이유로해야합니다. 이 설정은 이제 기본적으로 꺼져 있습니다 (버전 4.2 이상). 물론 기본 설정을 무시하고 register_globals를 켤지 여부를 결정하는 것은 서버를 실행하는 사람들에게 달려 있습니다. 자신의 서버를 테스트하는 가장 쉬운 방법은 phpinfo ()를 사용하는 것입니다. 웹 사이트의 관리 영역에이 웹 페이지에 대한 링크가있을 것입니다. 이 웹 페이지에는이 정보가있는 Configuration PHP Core 섹션이 있습니다.

위에서 언급했듯이 서버 설정에 따라 수퍼 글로벌에 다르게 액세스합니다. 새로운 서버 설정을 위해 슈퍼 글로벌에 새로운 이름이 부여되었습니다. 서버에 여전히 이전 설정이있는 경우 어쨌든 새 이름을 사용하는 것이 좋습니다. 이 새 이름을 사용하면 프로그램이 두 서버 구성에서 모두 작동하는지 확인할 수 있습니다. 그러나 이전 이름의 경우에는 해당되지 않습니다. 이전 서버 구성에서만 작동합니다. 아래 차트는 기존 이름과 새 이름 및 슈퍼 글로벌에 대한 설명을 보여줍니다. 이 수퍼 글로벌의 이름은 모두 대문자로되어 있습니다.

새로운낡은기술
$ _GET $ HTTP_GET_VARS 이 슈퍼 글로벌은 guery 문자열과 같은 get 메소드에 의해 프로그램으로 전송 된 변수를 포함합니다.
$ _POST $ HTTP_POST_VARS 이 수퍼 글로벌은 post 메소드에 의해 프로그램으로 전송 된 변수를 포함합니다.
$ _COOKIE $ HTTP_COOKIE_VARS 이 슈퍼 글로벌은 쿠키에서 프로그램에 사용 가능한 변수를 포함합니다.
$ _SESSION $ HTTP_SESSION_VARS 이 슈퍼 글로벌은 세션을 통해 프로그램에 의해 등록 된 변수를 포함합니다.
$ _FILES $ HTTP_POST_FILES 이 슈퍼 글로벌은 파일 업로드에서 사용 가능한 변수를 포함합니다.
$ _ENV $ _HTTP_ENV_VARS 이 슈퍼 글로벌은 서버 환경에서 사용 가능한 변수를 포함합니다.
$ _REQUEST -- 이 수퍼 글로벌에는 모든 유형의 사용자 입력에 의해 프로그램으로 전송 된 변수가 포함됩니다. 이것은 가장 일반적이거나 보편적 인 유형의 초 세계입니다.
$ _SERVER -- 이 슈퍼 글로벌은 파일 경로와 같은 서버에 대한 정보를 포함합니다.