>백엔드 개발 >PHP 튜토리얼 >Register_globals PHP에서 Register_globals 매개변수 OFF와 ON의 차이점(register_globals 사용법에 대한 자세한 설명)

Register_globals PHP에서 Register_globals 매개변수 OFF와 ON의 차이점(register_globals 사용법에 대한 자세한 설명)

WBOY
WBOY원래의
2016-07-29 08:47:58926검색

register_globals의 값은 On 또는 Off로 설정할 수 있습니다. 각각의 차이점을 설명하는 코드를 제공하겠습니다.
코드:

코드 복사 코드는 다음과 같습니다.




submit" value ="login">


register_globals=Off일 때 다음 프로그램은 $_GET['user_name'] 및 $_GET[' user_pass'를 사용해야 합니다. ] 전달된 값을 수락합니다. (참고:
의 메소드 속성이 post인 경우 $_POST['user_name'] 및 $_POST['user_pass']를 사용해야 합니다.)
register_globals=On일 경우 다음 프로그램에서 $를 직접 user_name으로 사용할 수 있습니다. 및 $user_pass 값을 허용합니다.
register_globals는 이름 그대로 글로벌 변수로 등록한다는 의미이므로 On일 경우 전달된 값을 글로벌 변수로 직접 등록하여 직접 사용하고, Off일 경우에는 a로 이동해야 합니다. 그것을 얻으려면 특정 배열을 사용하십시오. 따라서 위와 같이 값을 얻을 수 없는 문제를 겪는 친구는 먼저 Register_globals 설정이 값을 얻는 방법과 일치하는지 확인해야 합니다. (보려면 phpinfo() 함수를 사용하거나 php.ini를 직접 볼 수 있습니다.)
그럼 왜 Off를 사용할까요? 두 가지 이유가 있습니다:
1. 새로운 버전의 PHP에서는 기본적으로 Off를 사용합니다. On으로 설정할 수 있지만 서버를 제어할 수 없으면 코드 호환성이 큰 문제가 됩니다. 이제부터 Off 스타일로 프로그래밍을 시작하는 것이 좋습니다
2. 다음은 On 대신 Off를 사용해야 하는 이유를 설명하는 두 개의 기사입니다
http://www.php.net/manual/en/security.registerglobals .php
이제 또 다른 질문이 있습니다. On 스타일로 작성된 수많은 스크립트를 어떻게 해야 할까요?
이전 스크립트를 잘 계획했다면 config.inc.php와 같은 공개 포함 파일이 있고 이 파일에 다음 코드를 추가하여 시뮬레이션하세요.
코드:

코드 복사 코드는 다음과 같습니다.

if ( ! ini_get('register_globals') )
{
extract($_POST);
extract($_GET)
extract($_SERVER);
extract($_FILES); extract($ _ENV);
extract($_COOKIE);
if ( isset($_SESSION) )
{
extract($_SESSION)
}
?>


register_globals = Off는 , url에서 전달된 데이터를 얻는 방법에 영향을 미칠 뿐만 아니라 세션 및 쿠키를 얻는 방법에도 영향을 미칩니다. : $_SESSION[], $_COOKIE. 동시에 세션 처리에 몇 가지 변경 사항이 있습니다. 예를 들어 session_register()는 불필요하고 유효하지 않습니다. 구체적인 변경 사항은 PHP 매뉴얼의 세션 처리 기능을 확인하세요.
실제로 $_REQUEST 중간에 있는 내용입니다. $_GET $_POST $ _COOKIE에서 오는 단점은 변수가 get post에서 오는지 쿠키에서 오는지 확인할 수 없기 때문에 엄격한 요구 사항이 있는 경우에는 적합하지 않습니다.


위 내용은 Register_globals의 내용을 포함하여 Register_globals PHP에서 Register_globals 매개변수 OFF와 ON의 차이점을 소개합니다(register_globals 사용법에 대한 자세한 설명). PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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