웹모아
로그인 / 회원가입   검색     

PHP 슈퍼전역변수 들의 종류

작성자 홈마스타 2007-06-09 댓글 0 조회 24,451

1. PHP 슈퍼전역변수 들의 종류

$GLOBALS
스트립트의 전역 유효영역에서 쓸수있는 모든 변수에 대한 참조를 포함한다. 이 배열의 key는 전역 변수들의 이름이다. PHP 3 이래로 $GLOBALS가 존재해왔다.

$_SERVER
  웹서버나, 현재 스크립트의 실행환경에 직접적으로 관련되어 설정되는 변수이다.
  구버전의 $HTTP_SERVER_VARS 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_GET
   HTTP GET에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_GET_VARS 배열과 동일하다.
  (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_POST
  HTTP POST에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_POST_VARS 배열과 동일하다.
  (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_COOKIE
  HTTP 쿠키에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_COOKIE_VARS 배열과 동일하다.
  (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_FILES
   HTTP post 파일 업로드에 의해 스크립트로 제공되는 변수이다.
   구버전의 $HTTP_POST_FILES 배열과 동일하다. (이 변수는 현재 유효하지만, 추천하지는 않는다).
   더 자세한 정보는 POST 메소드 업로드를 참고하도록 한다.

$_ENV
  환경에 의해 스크립트로 제공되는 변수이다. 구버전의 $HTTP_ENV_VARS 배열과 동일하다.
  (이 변수는 현재 유효하지만, 추천하지는 않는다)

$_REQUEST
 GET, POST, COOKIE 입력 메카니즘을 통해 스크립트로 제공되는 변수이다.
 이 메카니즘은 신용될수는 없다.
 이 배열 안 에 포함된 존재하는 변수와 변수의 나열 순서는 PHP variables_order 설정 디렉티브에 의해 정의된다. 이 배열은 PHP 4.1.0 이전 버전에서 동일한 변수가 존재하지 않는다. import_request_variables()도 참고.


주의 : PHP 4.3.0이후, $_REQUEST 안에 FILE 정보를 갖는 $_FILES 변수가 존재하지 않게 되었다.
 


$_SESSION
 스크립트의 세션에 등록되는 변수이다. 구버전의 $HTTP_SESSION_VARS 배열과 동일하다.
 (이 변수는 현재 유효하지만, 추천하지는 않는다).
 더 자세한 정보는 Session handling functions섹션을 참고.

 

 


2. php 변수 사용

 

2.1. POST, GET, COOKIE, REQUEST 변수


    예전에는 $aa, $bb 라는 변수가 다른 페이지로 전송 되면,
    그 페이지에서도 $aa $bb 라는 변수로 접근이 가능 하였다.
  그러나 여기에는 보안적인 최약점이 있어
   register_globals = Off 라는 환경 변수로 설정을 제한하고 있습니다.

   지금은 페이지 전송 방식에 따라
     GET 방식으로 전송된 경우 $HTTP_GET_VARS['aa']  또는  $_GET['aa']로
     POST 방식으로 전송된 경우 $HTTP_POST_VARS['aa']  또는  $_POST['aa']로만 접근이 됩니다.

   그래서 일부 사용자는 이 부분이 귀찮아 register_globals = On으로 설정하여 사용하기도 합니다.
 
  그러나 다른 개발 언어 보다는 변수 설정이나 활용에서 php가 훨씬 쉽고 간결 합니다.

  $_COOKIE 의 경우     register_globals = On 로 설정 되면
    cookie와 같은 변수명으로 GET 방식으로 전달하면 변수보다 우선 순위가 GET 방식이 높아서
    쿠기변수가 아닌 GET으로 전달된 변수가 적용이되어 보안에 문제가 될 수 있습니다.

   variables_order = "GPCS" 라는 php.ini 환경 변수에 의해 조정 됩니다.
    ( GPCS 는  GET, POST, Cookie, Environment and Built-in variables)

다음은 php.ini 내용의 일부 입니다.

; - 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.

 

2.2. 사용자 전역 변수


  2.2.1  include 파일을 이용한 전역 변수 설정


  
  필자는 전역 변수들을 하나의 파일로 생성하여 저장을 합니다.
    그러면 서비스 환경에서 자주 사용되고 공통으로 필요한 변수들이 관리가 편해 집니다.

-->varconf.inc

--> dbconn.inc

--> board.php

댓글 (0)
환경설정
페이지: 2 / 4   
    2차 도메인과의 세션고유 3156
    POST로 값을 넘길때, 만 (홈마스타) 4914
    세션(로그인)시간 무한대로 (2) (홈마스타) 3331
    php mysql 세션 관리 (홈마스타) 3816
    세션을 DB로 관리하기 + (1) (홈마스타) 4412
    브라우져를 종료해도 세션이 (홈마스타) 3675
    PHP에서 세션 사용하기 (홈마스타) 3414
    [설치/설정] PHP 파일업 (홈마스타) 4153
    php.ini 값 설정가능한 (홈마스타) 3953
PHP 슈퍼전역변수 들의 종 (홈마스타) 24451
    쿠키공유를 위한 헤드값 (홈마스타) 3762
    php.ini 설정하기 (홈마스타) 4004

 [1]  [2]  [3]  [4]  
복수단어 검색은 공백(space)로 구분해 주세요.

]
]
최근 글 [손님]
인기 글 [손님]

자유마당 [손님]
원국보기 캡처 web.landmoa.net
sajuplus.net
폰트 선택
안녕하세요, 한국어
你好,中国語 甲乙