Skip to content

조회 수 17876 추천 수 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
번호 제목 글쓴이 날짜 조회 수
28 php.ini 설명 ADMINPLAY 2009.06.04 7387
27 PHP 컴파일하고 Make 할때 lltdl을 찾을 수 없다면서 중지... ADMINPLAY 2009.06.01 11498
26 php 재 컴파일 없이 필요한 모듈 올리기 1 ADMINPLAY 2008.12.14 8740
25 PHP 업로드 용량 제한 변경하기 #2 ADMINPLAY 2008.11.03 7450
24 PHP 업로드 용량 제한 변경하기 #1 ADMINPLAY 2008.11.03 8035
23 PHP 언어디코딩 ADMINPLAY 2009.07.18 11536
22 PHP 버전 확인하기 ADMINPLAY 2008.12.23 22282
21 php 버전 정보 숨기기 ADMINPLAY 2009.06.04 8135
20 php 명령어 이용 phpinfo 확인 ADMINPLAY 2009.06.04 10240
19 php mysql에 insert시 싱글쿼츠(홑따옴표) 입력 처리 (mag... ADMINPLAY 2013.09.07 8922
18 PHP FreeTDS 사용 (MS-SQL) file ADMINPLAY 2010.01.05 16945
17 php 5.1.4 인데 ZipArchive() 사용하기 --enable-zip file ADMINPLAY 2009.06.03 13304
16 PHP - eAccelerator 설치 ADMINPLAY 2009.08.03 15017
15 PEC HTTP Setup ADMINPLAY 2009.12.31 15942
14 pear 1.9 업그레이드 및 패치설치 ADMINPLAY 2009.12.31 17324
13 oracle10g + php5.2.11 error [OCIEnvNlsCreate() failed] ADMINPLAY 2010.02.24 71264
12 Maximum execution time of 30 seconds exceeded ADMINPLAY 2009.09.28 17389
11 ini_set("allow_url_fopen", 1); -- allow_url_fopen = Of... ADMINPLAY 2009.06.01 10128
10 Freetds 설치 참고 (sybase) ADMINPLAY 2009.06.04 10721
9 freetds 설치 (php로 외부 MS-SQL 서버에 접속 사용하기) ADMINPLAY 2009.05.18 9599
Board Pagination Prev 1 2 3 Next
/ 3

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234