댓글 목록

PHP 전역변수

페이지 정보

작성자 운영자 작성일 18-03-12 22:46 조회 1,894 댓글 0

동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.

Superglobals는 PHP4.1.0에서 처음 소개되었으며 모든 범위에서 항상 사용할 수 있는 내장 변수입니다.


PHP 전역변수 - Superglobals

PHP에서 미리 정의된 일부 변수는 'Superglobals(슈퍼전역?)'입니다. 즉 범위에 관계없이 항상 접근할 수 있습니다. 또한, 그 어떤 특별한 기능을 수행하지 않고도 모든 함수, 클래스 또는 파일에서 접근할 수 있습니다.


PHP superglobal 변수는 다음과 같습니다.

  • $GLOBALS
  • $_SERVER
  • $_REQUEST
  • $_POST
  • $_GET
  • $_FILES
  • $_ENV
  • $_COOKIE
  • $_SESSION


이번 장에서는 슈퍼전역에 대해 몇가지를 소개하고 나머지는 뒤 과정에서 설명합니다.


PHP $GLOBALS

$GLOBALS는 PHP 스크립트의 전역변수에 접근을 목적으로 사용되는 PHP슈퍼전역 변수입니다.

(함수 또는 매소드내에서도)


PHP는 $GLOBALS[index] 배열에 모든 전역 변수를 저장합니다. index는 변수의 이름을 포함합니다.


아래 예는 슈퍼전역변수 $GLOBALS를 사용하는 방법을 보여줍니다.


<?php 

$x = 75; 

$y = 25;

 

function addition() { 

    $GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y']; 

}

 

addition(); 

echo $z;  //  결과 : 100

?>


위의 예에서 z는 $GLOBALS배열 내에 있는 변수이기 때문에 함수 외부에서도 접근할 수 있습니다.


PHP $_SERVER

$_SERVER는 헤더, 경로 및 스크립트 위치에 대한 정보를 보유하는 PHP 슈퍼전역변수입니다.


아래 예는 $_SERVER에 있는 몇 가지 요소를 사용하는 방법을 보여줍니다.


<?php 

echo $_SERVER['PHP_SELF'];

echo "<br>";

echo $_SERVER['SERVER_NAME'];

echo "<br>";

echo $_SERVER['HTTP_HOST'];

echo "<br>";

echo $_SERVER['HTTP_REFERER'];

echo "<br>";

echo $_SERVER['HTTP_USER_AGENT'];

echo "<br>";

echo $_SERVER['SCRIPT_NAME'];

?>


아래 표는 $_SERVER로 얻을 수 있는 중요한 요소를 볼 수 있습니다.

 요소/코드

 설명

 $_SERVER['PHP_SELF']

현재 실행중인 파일 이름을 반환합니다.

 $_SERVER['GATEWAY_INTERFACE']

서버의 CGI버전을 반환합니다.

 $_SERVER['SERVER_ADDR']

호스트 서버의 IP주소를 반환합니다.

 $_SERVER['SERVER_NAME']

호스트 서버이름을 반환합니다.(예:365ok.co.kr)

 $_SERVER['SERVER_SOFTWARE']

서버 식별 문자열 반환 (예: Apache / 2.2.24)

 $_SERVER['SERVER_PROTOCOL']

정보 프로토콜의 이름과 버전 반환(예: HTTP / 1.1)

 $_SERVER['REQUEST_METHOD']

페이지에 접근하는데 사용되는 요청방법 반환(예:POST) 

 $_SERVER['REQUEST_TIME']

요청시작 타임스템프 반환(예:1377687499) 

 $_SERVER['QUERY_STRING']

퀴리 문자열을 통해 페이지 접근한 경우 쿼리 문자열 반환 

 $_SERVER['HTTP_ACCEPT']

현재 요청에서 응답(Accept)헤더를 반환합니다. 

 $_SERVER['HTTP_ACCEPT_CHARSET']

현재 요청에서 Accept_Charset헤더를 반환합니다.(예:utf-8) 

 $_SERVER['HTTP_HOST']

현재 요청에서 Host헤더를 반환합니다. 

 $_SERVER['HTTP_REFERER']

현재 페이지의 전체 URL을 반환합니다. 

 $_SERVER['HTTPS']

보안 HTTP프로토콜을 통해 스크립트를 퀴리합니까? 

 $_SERVER['REMOTE_ADDR']

사용자가 현재 페이지를 보고 있는 곳의 IP주소 반환 

 $_SERVER['REMOTE_HOST']

사용자가 현재 페이지를 보고 있는 곳의 호스트이름 반환 

 $_SERVER['REMOTE_PORT']

웹서버와 통신하기 위해 사용자 컴퓨터에서 사용되는 포트를 반환합니다. 

 $_SERVER['SCRIPT_FILENAME']

현재 실행중인 스크립트의 절대 경로 이름을 반환합니다. 

 $_SERVER['SERVER_ADMIN']

웹서버 구성파일에서 SERVER_ADMIN지시문에 주어진 값을 반환합니다. 

 $_SERVER['SERVER_PORT']

통신을 위해 웹서버가 사용하는 서버 포트를 반환합니다.(예: 80) 

 $_SERVER['SERVER_SIGNATURE']

서버생성 페이지에 추가되는 서버버전 및 가상호스트 이름을 반환합니다. 

 $_SERVER['PATH_TRANSLATED']

현재 스크립트에 대한 파일 시스템 기반 경로를 반환

 $_SERVER['SCRIPT_NAME']

현재 스크립트의 경로를 반환합니다. 

 $_SERVER['SCRIPT_URI']

현재 페이지의 URI를 반환합니다. 


PHP $_REQUEST

PHP $_REQUEST는 HTML양식을 제출한 후 데이터를 수집하는데 사용됩니다.


아래 예는 입력 필드와 제출 버튼이 있는 양식을 보여줍니다.


사용자가 '제출'을 클릭하여 데이터를 제출하면 양식 데이터가 <form>태그의 action속성에 지정된 파일로 전송됩니다. 이 예제에서는 폼 데이터 처리를 위해 이 파일 자체를 가리킵니다. 다른 PHP파일을 사용하여 양식 데이터를 처리하려면 원하는 파일 이름으로 바꿉니다.

그런 다음 슈퍼 전역 변수 $_REQUEST를 사용하여 입력 필드의 값을 수집할 수 있습니다.


<html>

<body>


<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

  Name: <input type="text" name="fname">

  <input type="submit">

</form>


<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // collect value of input field

    $name = $_REQUEST['fname'];

    if (empty($name)) {

        echo "Name is empty";

    } else {

        echo $name;

    }

}

?>


</body>

</html>


PHP $_POST

PHP $_POST는 method="POST"를 사용하여 HTML양식을 제출한 후 양식 데이터를 수집하는데 사용됩니다. $_POST는 변수를 전달하는데 많이 사용됩니다.


아래 예는 입력 필드와 제출 버튼이 있는 양식을 보여줍니다. 사용자가 '제출'을 클릭하여 데이터를 제출하면 양식 데이터가 <form>태그의 action속성에 지정된 파일로 전송됩니다. 이 예제에서는 양식 데이터를 처리하기 위해 파일 자체를 가리킵니다. 다른 PHP파일을 사용하여 양식 데이터를 처리하려면 원하는 파일 이름으로 바꾸면 됩니다. 그런 다음 슈퍼 전역변수 $_POST를 사용하여 입력 필드의 값을 수집할 수 있습니다.


<html>

<body>


<form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">

  Name: <input type="text" name="fname">

  <input type="submit">

</form>


<?php

if ($_SERVER["REQUEST_METHOD"] == "POST") {

    // collect value of input field

    $name = $_POST['fname'];

    if (empty($name)) {

        echo "Name is empty";

    } else {

        echo $name;

    }

}

?>


</body>

</html>


PHP $_GET

PHP $_GET은 method="get"을 사용하여 HTML양식을 제출한 후 양식 데이터를 수집하는 데에도 사용할 수 있습니다.


$_GET은 URL로 전송된 데이터를 수집할 수도 있습니다.


매개 변수가 있는 하이퍼 링크가 포함된 HTML페이지가 있다고 가정합니다.


<html>

<body>


<a href="info_get.php?subject=PHP&web=365ok.co.kr">$GET 확인</a>


</body>

</html>


사용자가 "$_GET 확인"링크를 클릭하면 "subject"와 "web"매개 변수가 "info_get.php"로 전송되므로 $_GET을 사용하여 "info_get.php"에서 해당 값에 접근할 수 있습니다.


아래 예는 info_get.php 파일 안의 코드를 보여줍니다.


<html>

<body>


<?php 

echo "Study " . $_GET['subject'] . " at " . $_GET['web'];

?>


</body>

</html>


그누보드/영카트


/adm/admin.head.php

/adm/admin.lib.php

/adm/admin.tail.php

/adm/ajax.use_captcha.php

/adm/auth_list_delete.php

/adm/auth_list.php

/adm/auth_update.php

/adm/board_copy_update.php

/adm/board_form_update.php

/adm/board_list_update.php

/adm/board_list.php

/adm/boardgroup_form_update.php

.....


/bbs/ajax.autosave.php

...


/lib/common.lib.php

...


/common.php

/config.php

/head.sub.php



댓글목록 0

등록된 댓글이 없습니다.