메뉴 건너뛰기

Dev tips

PHP register_global = off 일때 GET,POST,GOOKIE 등 변수 가져오기

taknim 2010.06.28 20:40 조회 수 : 11449 추천:2688

http://blog.naver.com/cutegirlmimi/150083268025

php.ini 설정에 보면

register_global 이라는 옵션이 있다.

 

php 4.2버전 이후부터 이 옵션이 off로 설정되어 나오는데,

이 옵션이 off로 설정되어 있으면 일반적으로 사용하는 변수 전달 방법이 불가능해진다.

 

예를들면

보통 echo $id; 라고 쓰지만

off일 경우에는 이런 방법이 불가능하다.

 

off일 경우엔

 $_GET[id] 이런식으로 변수를 사용해야하고,

주소에 추가되어 오는 변수는 $_GET[] 이렇게,

폼으로 전달되서 오는 post방식은 $_POST[],

쿠키는 $_COOKIE[] , 등 이런식으로 써야한다.

 

그래서 서버이전 등의 경우에 호환성 문제가 발생한다.

 

보통 on으로 바꾸고 사용하는 개발자들도 있고, off에 맞춰 다시 프로그램을 짜는 경우도 있으나,

 

off 인 채로

페이지 상단에
extract($_POST);
extract($_GET);
extract($_SERVER);
extract($_FILES);
extract($_ENV);
extract($_COOKIE);
extract($_SESSION);

 

를 추가해주면 on일때처럼 사용할 수 있다.

 

php 소스가 들어간 곳엔 무조건 다 추가해 줄 것! ^^

 

 

[출처  : http://cafe.naver.com/phpcafe.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=854  /검색어 : 리눅스서버에 깔린 apm서버 register global]