php 호스팅 서버에서 register_globals 설정하기
PHP 5 에서 작업을 하다보면
기본적으로 register_globals가 비활성화 되어 있다.
PHP.ini 에서 찾아볼수 있는데
PHP 5 부터는 기본적으로 off가 되어있고
이전 버전에서는 on이 되어있단 사실.
보안문제로 인해서 기본으로 off 해두었다는데...
여튼 PHP 5 코딩 가이드에 따라서
GET, POST, SESSION과 같은 녀석들을 참조하기 위해서
$_GET, $_POST, $_SESSION으로 접근하고
모든 코드를 작성하였다
그리고 호스팅서버의 PHP 버전을 확인하고 업로드 했건만....
머리터지게 많은 에러들.....
대략 3시간의 삽질 끝에
설마란 생각이 스쳐가면서 phpinfo()를 출력하였는데
아니나 다를까...
register_globals 가 on이 되어 버린 사실...... ㅡㅡ
이거 나 혼자만 쓰는 서버도 아니고 해서
설정을 바꿔달라 하기도 그렇고...
그렇다고 코드를 다 수정하자니
엄청난 노가다를 해야한다는 두려움이 앞선다...
에러의 원인은 변수를 덮어쓰는 문제였다
$_GET['test']와 $_SESSION['test'] 와 같이
세션과 get 파라미터가 다른 값을 갖고 있지만
전역변수화 되면서
$test 라는 같은 공간에 덮어쓰면서 문제가 발생된것이다.
로긴도 되었다고 나왔지만
로긴은 안되어있고.... (참조변수가 달라지니... ㅡㅡ)
여튼 이때의 일은 한참 전의 일이라
덮어쓰는 순서를 테스트 해볼걸이란 후회도 있고
(아직 가능하지만 귀찮다;;)
잡설이 길어졌는데
여튼 나는 이것을 해결하기위해 열심히 구글링을 해본결과
내가 원하는 경우와 정반대의 경우가 많더라...
register_globals를 on 하기위한 방법들... (내가 이상한건가?? ㅡㅡ)
나의 경우는 버츄얼 호스트로 들어간 경우이니 특정 폴더에만 적용하는 방법을 찾다보니
.htaccess 파일을 사용하는 방법이 나오더라
사실 .htaccess는 xe나 다른 프레임워크에서 보긴 했었는데
설정된 것이 많지도 않았고 겨우 봤던게
deny all
정도였고 그래서 아파치 설정만 되는줄 알았다
그러나
php_flag register_globals off
이 한줄이 들어간 .htaccess파일을 해당 디렉토리에 넣어주니
아무 수정없이 잘 동작했다
굿~~!!!
- [2011/11/22] [PHP] 오픈소스 - 클래스 리파짓토리 (645)
- [2011/08/13] Basic Syntax of Regular expressions (0)
- [2011/07/11] [php] 스크랩 - 실수하기 쉬운것들 I (1767)
- [2011/05/21] 고팀장님 특별과외 I - HTML (2302, 1) *1
- [2011/05/21] PHP Fest 2011 참가 신청 완료 (1970)
- php , register_globals , htaccess , php 설정
