ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [PHP] 16. SuperGlobal - PHP 강좌, PHP5
    Web/PHP 2015. 6. 13. 13:47


    PHP 5 Global Variables - Superglobals

     Superglobal은 PHP 4.1.0에서 소개된 개념이고 모든 범위에서 언제든 사용가능한 내장된 변수입니다.






    1. PHP Global Variables - Superglobals

     PHP에 몇 개의 미리 선언된 변수는 "Superglobal"이라 합니다. 이 의미는 범위에 상관없이 언제나 접근 가능하다는 뜻 입니다. 


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

     - $GLOBALS

     - $_SERVER

     - $_REQUEST

     - $_POST

     - $_GET

     - $_FILES

     - $_ENV

     - $_COOKIE

     - $_SESSION







    2. PHP $GLOBALS

     $GLOBALS는 PHP 스크립트 어느 곳이든 전역 변수를 접근 할 때 사용되는 PHP super 전역 변수입니다.


     PHP는 $GLOBALS[index]라 불리는 배열에 모든 전역 변수를 저장합니다.


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php 
    $x = 75
    $y = 25;
     
    function addition() { 
        $GLOBALS['z'= $GLOBALS['x'+ $GLOBALS['y']; 
    }
     
    addition(); 
    echo $z
    ?>
    cs
     








    3. PHP $_SERVER 

     $_SERVER는 해더, 경로, 스크립트 위치에 대한 정보를 담고있는 super 전역 변수입니다.


     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <!DOCTYPE html>
    <html>
    <body>
     
    <?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'];
    ?>
     
    </body>
    </html>
    cs









     아래 테이블 목록은 $_SERVER 안의 가장 중요한 요소들을 나열한 것 입니다.



     


     

    Element/CodeDescription
    $_SERVER['PHP_SELF']Returns the filename of the currently executing script
    $_SERVER['GATEWAY_INTERFACE']Returns the version of the Common Gateway Interface (CGI) the server is using
    $_SERVER['SERVER_ADDR']Returns the IP address of the host server
    $_SERVER['SERVER_NAME']Returns the name of the host server (such as www.w3schools.com)
    $_SERVER['SERVER_SOFTWARE']Returns the server identification string (such as Apache/2.2.24)
    $_SERVER['SERVER_PROTOCOL']Returns the name and revision of the information protocol (such as HTTP/1.1)
    $_SERVER['REQUEST_METHOD']Returns the request method used to access the page (such as POST)
    $_SERVER['REQUEST_TIME']Returns the timestamp of the start of the request (such as 1377687496)
    $_SERVER['QUERY_STRING']Returns the query string if the page is accessed via a query string
    $_SERVER['HTTP_ACCEPT']Returns the Accept header from the current request
    $_SERVER['HTTP_ACCEPT_CHARSET']Returns the Accept_Charset header from the current request (such as utf-8,ISO-8859-1)
    $_SERVER['HTTP_HOST']Returns the Host header from the current request
    $_SERVER['HTTP_REFERER']Returns the complete URL of the current page (not reliable because not all user-agents support it)
    $_SERVER['HTTPS']Is the script queried through a secure HTTP protocol
    $_SERVER['REMOTE_ADDR']Returns the IP address from where the user is viewing the current page
    $_SERVER['REMOTE_HOST']Returns the Host name from where the user is viewing the current page
    $_SERVER['REMOTE_PORT']Returns the port being used on the user's machine to communicate with the web server
    $_SERVER['SCRIPT_FILENAME']Returns the absolute pathname of the currently executing script
    $_SERVER['SERVER_ADMIN']Returns the value given to the SERVER_ADMIN directive in the web server configuration file (if your script runs on a virtual host, it will be the value defined for that virtual host) (such as someone@w3schools.com)
    $_SERVER['SERVER_PORT']Returns the port on the server machine being used by the web server for communication (such as 80)
    $_SERVER['SERVER_SIGNATURE']Returns the server version and virtual host name which are added to server-generated pages
    $_SERVER['PATH_TRANSLATED']Returns the file system based path to the current script
    $_SERVER['SCRIPT_NAME']Returns the path of the current script
    $_SERVER['SCRIPT_URI']Returns the URI of the current page

     [ 출처: W3Schools ]






    4. PHP $_REQUEST
     PHP $_REQUEST는 HTML 서식을 전송하고 난 후, 데이터를 수집하는데 사용됩니다.

     아래 예제는 입력 필드와 전송 버튼을 갖는 서식을 보여줍니다. 

     사용자가 전송 버튼을 클릭하여 데이터를 전송하면, 서식 데이터는 <form> 태그의 액션 속성에 명시된 파일로 보내집니다.

     아래 예제에서는 데이터를 자기자신에게 보내어 처리하게끔 작성하였습니다.



     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <!DOCTYPE html>
    <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>
    cs



     





    5. PHP $_POST

     PHP $_POST는 HTML 서식의 메소드가 "post"인 경우 전송된 후, 서식 데이터를 수집하는데 사용됩니다.


     $_POST는 변수를 넘길 때 널리 사용됩니다.



     
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <!DOCTYPE html>
    <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>
    cs

     



     










    6. PHP $_GET

     PHP $_GET은 HTML 서식이 method가 "get"인 경우 전송되고 난 뒤, 서식 데이터를 수집하는데 사용됩니다.


     파라미터를 하이퍼링크가 포함하는 HTML 페이지가 있다고 가정합시다:



    <html>
    <body>

    <a href="test_get.php?subject=PHP&web=W3schools.com">Test $GET</a>

    </body>
    </html>





     사용자가 링크를 클릭했을 때, 파라미터 "subject"와 "web"은 test_get.php로 보내집니다.

     

     $_GET을 사용하여 test_get.php에서 위의 파라미터의 값을 접근 할 수 있습니다.









    댓글

Designed by Tistory.