-
[PHP] 16. SuperGlobal - PHP 강좌, PHP5Web/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]라 불리는 배열에 모든 전역 변수를 저장합니다.
1234567891011<?php$x = 75;$y = 25;function addition() {$GLOBALS['z'] = $GLOBALS['x'] + $GLOBALS['y'];}addition();echo $z;?>cs 3. PHP $_SERVER
$_SERVER는 해더, 경로, 스크립트 위치에 대한 정보를 담고있는 super 전역 변수입니다.
1234567891011121314151617181920<!DOCTYPE html><html><body><?phpecho $_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/Code Description $_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 $_REQUESTPHP $_REQUEST는 HTML 서식을 전송하고 난 후, 데이터를 수집하는데 사용됩니다.아래 예제는 입력 필드와 전송 버튼을 갖는 서식을 보여줍니다.사용자가 전송 버튼을 클릭하여 데이터를 전송하면, 서식 데이터는 <form> 태그의 액션 속성에 명시된 파일로 보내집니다.아래 예제에서는 데이터를 자기자신에게 보내어 처리하게끔 작성하였습니다.1234567891011121314151617181920212223<!DOCTYPE html><html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form><?phpif ($_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는 변수를 넘길 때 널리 사용됩니다.
1234567891011121314151617181920212223<!DOCTYPE html><html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Name: <input type="text" name="fname"><input type="submit"></form><?phpif ($_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에서 위의 파라미터의 값을 접근 할 수 있습니다.
'Web > PHP' 카테고리의 다른 글
[PHP] 19. Form Required - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 18. Form Validation - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 17. Form Handling - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 15. 정렬된 배열 (Sorting Arrays) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 14. 배열 (Arrays) - PHP 강좌, PHP5 (0) 2015.06.13 [PHP] 13.함수 (functions) - PHP 강좌, PHP5 (0) 2015.06.13