php에서는 POST방식이나 GET방식을 통해 전달된 값을 각각 $HTTP_POST_VARS와 $HTTP_GET_VARS변수에 자동적으로 저장됩니다. 지금은 Php가 버전업되어 $_GET과 $_POST라는 짧은 변수에 동시 저장됩니다. 단, 이 기능을 사용하려면 php.ini에 다음 표의 설정에 On상태일 때만 저장됩니다.

 Track_vars    = On ; enable the $HTTP_*_VARS[] arrays, where * is one of
                            ; ENV, POST, GET, COOKIE or SERVER. 

이 설정은 처음 설치시 기본값 On입니다.

이 변수는 사용자가 입력한 폼의 속성 이름이나 전달하고자 하는 변수의 이름을 키로 갖고, 그 변수의 값을 갖는 value인 연관배열로 전달받습니다.

POST의 값은 다음 예제를 보면 이해되리라 봅니다.

예제 (ex #1

 <form method="POST" action="">
 이   름: <input type="text" name="myname" value="내  이름"> 
 닉네임: <input type="text" name="nickname" value="하보니">
 <inpt type="submit" value="값 전송">
 </form>

 
<?php
 
if(is_array($_POST
)){
      while (list(
$key$value) = each($_POST
)){
           echo 
"변수 키 : ${key}, 변수 값: ${value}<br />\n\t"
;
      }
      echo 
$_POST['myname'] . "<br />\r\n"
;
      echo 
$_POST['nickname'] . "<br />\r\n"
;
 }
 
/*
 결과:
 변수 키 : myname, 변수 값: 내 이름
 변수 키 : nickname, 변수 값: 하보니
 내 이름
 하보니
 */
 
?>


예제 (ex #2
 <form method="POST" action="?myname=내 이름&nickname=하보니">
 <inpt type="submit" value="값 전송">
 </form> 

 
<?php
 
if(is_array($_POST
)){
      echo 
$_POST['myname'] . "<br />\r\n"
;
      echo 
$_POST['nickname'] . "<br />\r\n"
;
 }
 
/*
 결과:
 내 이름
 하보니
 */
 
?>

변수 $_POST는 method 속성을 POST로 정의하여 전달된 값이 저장되는 것으로 "myname"이 변수이름인 key를 갖고, 그 변수의 값을 "내 이름"이 배열원소가 됩니다. 여기서 method 속성을 GET으로 정의하면 당연히 GET변수가 되겠지요.

예제 (ex #3
 <form method="GET" action="">
 이   름: <input type="text" name="myname" value="내  이름"> 
 닉네임: <input type="text" name="nickname" value="하보니">
 <inpt type="submit" value="값 전송">
 </form>

 
<?php
 
if(is_array($_GET
)){
      while (list(
$key$value) = each($_GET
)){
           echo 
"변수 키 : ${key}, 변수 값: ${value}<br />\n\t"
;
      }
      echo 
$_GET['myname'] . "<br />\r\n"
;
      echo 
$_GET['nickname'] . "<br />\r\n"
;
 }
 
/*
 결과:
 변수 키 : myname, 변수 값: 내 이름
 변수 키 : nickname, 변수 값: 하보니
 내 이름
 하보니
 */
 
?>

이 두 변수의 차이는 GET은 URL뒤에 붙어 전달되는 방식으로 데이터의 노출위험과 전송크기에 제한받지만, 반대로 POST는 데이터의 노출최소, 데이터전송에 제한이 없는 강점이 있습니다.

관련글: 2011/06/10 - [phP 들어가기/phP입문/변수 기초] - 자동전역변수 #2
           2011/04/16 - [phP 들어가기/phP입문/변수 기초] - 전역 변수 $GLOBALS
           2011/04/09 - [phP 들어가기/phP입문/변수 기초] - CGI 환경 변수

블로그 이미지

하보니

하보니와 함께하는 phP 초보

댓글을 달아 주세요