Skip to content

조회 수 17860 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

<?
- register_globals = Off [Security, Performance]
; Global variables are no longer registered for input data (POST, GET, cookies,
; environment and other server variables). Instead of using $foo, you must use
; you can use $_REQUEST["foo"] (includes any variable that arrives through the
; request, namely, POST, GET and cookie variables), or use one of the specific
; $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending
; on where the input originates. Also, you can look at the
; import_request_variables() function.
; Note that register_globals is going to be depracated (i.e., turned off by
; default) in the next version of PHP, because it often leads to security bugs.
; Read http://php.net/manual/en/security.registerglobals.php for further
; information.

; register_globals = Off [보안 수행]
; 입력 데이터(POST, GET cookies) 와 서버형 변수들은 더이상 전역변수로 등록되지 않는다.
; $foo 란 변수를 사용할때 $_REAUEST["foo"] 로 사용 해야 한다.
; $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"] 와 같이 사용

 

#####################################################################################
// php.ini 파일 에서 register_globals = on 시 변수형

$PHP_SELF;
$HTTP_REFERER;
$PATH_INFO;
$REMOTE_ADDR;

 

####################################################################################
// php 4.0 까지
// php.ini 파일에서 register_globals = off 시 변수형

$HTTP_SERVER_VARS[PHP_SELF];  // 현재 파일의 경로를 포함한 파일명을 보여줌
$HTTP_SERVER_VARS[HTTP_REFERER]; // 이전페이지의 URL 을 나타냄
$HTTP_SERVER_VARS[REMOTE_ADDR];  // 내 컴퓨터의 IP 주소를 나타냄
$HTTP_SERVER_VARS[SCRIPT_FILENAME]; // 해당 파일의 절대경로를 포함한 파일명을 보여주는 것입니다. /home/somedomain/a.php

$HTTP_GET_VARS[];     // HTTP 프로토콜에서 GET 방식으로 전송한 변수값
$HTTP_POST_VARS[];     // HTTP 프로토콜에서 POST 방식으로 전송한 변수값
$HTTP_FILES_VARS[];     // HTTP 프로토콜에서 파일 이름으로 전송한 변수값 [name][size][type]

// a.html?code=board&name=park 와 같은 스트링 값 까지 알아낼때
$url = $HTTP_SERVER_VARS["HTTP_REFERER"]."?".$HTTP_SERVER_VARS["QUERY_STRING"]

// register_globals_on 일때 변수 재 정의
@extract($HTTP_GET_VARS);
@extract($HTTP_POST_VARS);
@extract($HTTP_SERVER_VARS);
@extract($HTTP_ENV_VARS);


#####################################################################################
// php 4.1 부터
// php.ini 파일에서 register_globals = off 시 변수형
$_SERVER[PHP_SELF];
$_SERVER[SCRIPT_FILENAME]

$_POST[];
$_GET[];

$_SESSION['$member_id'];
$_COOKIE['$member_id'];

// a.html?code=board&name=park 와 같은 스트링 값 까지 알아낼때
$url = $_SERVER_VARS["HTTP_REFERER"]."?".$_SERVER_VARS["QUERY_STRING"]

// register_globals_on 일때 변수 재 정의
@extract($_GET);
@extract($_POST);
@extract($_SERVER);
@extract($_ENV);


#####################################################################################
$_POST와 $HTTP_POST_VARS는 차이

바뀌었습니다. long 타입이 예전부터 쓰이던 것이고, 짧은 타입은 4.1.0 이후로 생긴 것입니다.
두 배열은 같은 키와 같은 값을 가지고 있으므로 내용상 똑같습니다. 하지만 서로 다른 변수입니다.

결정적으로 이 둘이 다른 것은 짧은 타입의 경우 "자동전역(수퍼전역; SuperGlobal)변수"이지만 긴 타입은 그렇지 않다는 것입니다.
즉, $_POST는 함수선언에서 global $_POST; 로 선언하지 않고 사용이 가능하지만 $_HTTP_POST_VARS 는 선언을 해야만 전역으로 인식합니다.

짧은 형식이 '사용이 권장'되는 변수입니다. 긴 형식은 php-5.0 에서 php.ini에 의해 사라질 수 있습니다.

http://kr2.php.net/manual/kr/reserved.variables.php
http://kr2.php.net/manual/kr/language.variables.predefined.php
?>


List of Articles
번호 제목 글쓴이 날짜 조회 수
48 4.1.0이상 php 버전에서 register_globals = Off 일때 기... ADMINPLAY 2010.01.09 15422
47 call undefined mysql connect 에러 발생시 해결 방안 ADMINPLAY 2009.06.04 8430
46 call undefined mysql connect 와 같은 mysql 라이브러리... ADMINPLAY 2009.06.04 9014
45 configure: error: utf8_mime2text() has new signature, ... ADMINPLAY 2010.05.18 21856
44 DB 관리 : phpmyadmin ADMINPLAY 2008.12.10 8778
43 DBA: Could not find necessary header file 발생시 대처법 ADMINPLAY 2009.06.04 9249
42 Fatal error: Call to undefined function domxml_open_mem() ADMINPLAY 2009.12.31 17335
41 Fedora 및 CentOs 에서 Imap PHP 연동시 에러가날때 ADMINPLAY 2009.06.01 9059
40 freetds 설치 (php로 외부 MS-SQL 서버에 접속 사용하기) ADMINPLAY 2009.05.18 9595
39 Freetds 설치 참고 (sybase) ADMINPLAY 2009.06.04 10717
38 ini_set("allow_url_fopen", 1); -- allow_url_fopen = Of... ADMINPLAY 2009.06.01 10124
37 Maximum execution time of 30 seconds exceeded ADMINPLAY 2009.09.28 17371
36 oracle10g + php5.2.11 error [OCIEnvNlsCreate() failed] ADMINPLAY 2010.02.24 71249
35 pear 1.9 업그레이드 및 패치설치 ADMINPLAY 2009.12.31 17307
34 PEC HTTP Setup ADMINPLAY 2009.12.31 15922
33 PHP - eAccelerator 설치 ADMINPLAY 2009.08.03 15000
32 php 5.1.4 인데 ZipArchive() 사용하기 --enable-zip file ADMINPLAY 2009.06.03 13300
31 PHP FreeTDS 사용 (MS-SQL) file ADMINPLAY 2010.01.05 16929
30 php mysql에 insert시 싱글쿼츠(홑따옴표) 입력 처리 (mag... ADMINPLAY 2013.09.07 8909
29 php 명령어 이용 phpinfo 확인 ADMINPLAY 2009.06.04 10236
Board Pagination Prev 1 2 3 Next
/ 3

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234