PHP 버전 차이로 변수값을 못 받을때

PHP 버전 차이로 변수값을 못 받을때
PHP 4.3 버전에서 잘만 돌아가던 소스가 5.2에선 먹통이었다. 소스 분석해 보니 변수값을 읽어 오지 못한 것이었는데.. php.ini에서 register_globals 값을 off하라는데… 별 소용이 없었다. (아파치 재시작을 해주어야 함미다~~~)

php 4버전에서는 위 register_globals 값이 기본적으로 on이 되어있었지만 5버전으로 넘어오면서 보안강화를 이유로 off가 기본값으로 바뀌어 졌다. 따라서 설정을 바꾸지 않으려면 소스 하나씩을 다 바꾸어야 한다.

echo $no ;

위 소스를

echo $_POST[no] ;

이런 방식으로 말이다. 하지만 일일히 바꿀 필요 없이 소스 상단에 몇줄 정의해 주기만 해도 된다.

extract($_POST) ;
extract($_GET) ;
extract($_SERVER) ;
extract($_FILES) ;
extract($_ENV) ;
extract($_COOKIE) ;
extract($_SESSION) ;

하지만 마지막 세션줄 추가하니 오류가 떠서 그냥 지워버렸다. 위 부분을 정의해 주거나 파일을 하나 생성해서 인클루드 하는 방법으로 해결할 수 있다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다