====== PHP ======
===== register_globals = off 인 경우 경고메시지 처리 =====
- 세션을 사용하는 경우, 아래와 같은 Warning 이 나올 수 있다. 이것은 php.ini 에서 register_globals = off 로 설정된 경우에 나타난다.
Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3.
Please be advised that the session extension does not consider global variables as a source of data,
unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or
session.bug_compat_warn to off, respectively. in Unknown on line 0
- 일반적으로 register_globals = on 으로 설정하는 것은 보안상 추천하지 않는다. \\ register_globals = off 로 설정된 상태에서 위와 같은 경고가 나오지 않게 하려면 PHP 예약 정의 변수를 사용하도록 수정한다.
register_globals boolean
EGPCS(환경, GET, POST, 쿠키, 서버) 변수를 전역 변수로 등록할지를 결정합니다. 예를 들어, register_globals = on 이라면
URL http://www.example.com/test.php?id=3 요청에 $id를 생성합니다. 또는, $_SERVER['DOCUMENT_ROOT']에서 $DOCUMENT_ROOT를 등록합니다.
스크립트의 전역 위치에 유저 데이터로 채워지는것을 원하지 않는다면, 이 옵션을 끄십시오. PHP 4.2.0부터는 이 지시자의 기본값은 off입니다.
자동전역: $_ENV, $_GET, $_POST, $_COOKIE, $_SERVER 등의 PHP 예약 정의 변수를 사용하는 것을 권장합니다.
보안 챕터의 register_globals 사용에 대한 관련 정보를 읽어보십시오.
register_globals는 실행시에 설정(ini_set())할 수 없는 점에 주의하십시오. 그러나, 호스트가 .htaccess를 허용한다면, 그것을 이용할 수 있습니다.
예제 .htaccess 엔트리: php_flag register_globals on
- session_register("aaa") 함수를 쓰려고 할때, 경고가 발생했으며, 이를 없애기 위해서 $_SESSION['aaa'] = $aaa; 로 대체하였다.