동영상 강좌는 유튜브 채널 '웹학교'를 이용하시기 바랍니다.
Superglobals는 PHP4.1.0에서 처음 소개되었으며 모든 범위에서 항상 사용할 수 있는 내장 변수입니다.
PHP 전역변수 - Superglobals
PHP에서 미리 정의된 일부 변수는 'Superglobals(슈퍼전역?)'입니다. 즉 범위에 관계없이 항상 접근할 수 있습니다. 또한, 그 어떤 특별한 기능을 수행하지 않고도 모든 함수, 클래스 또는 파일에서 접근할 수 있습니다.
PHP superglobal 변수는 다음과 같습니다.
이번 장에서는 슈퍼전역에 대해 몇가지를 소개하고 나머지는 뒤 과정에서 설명합니다.
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
등록된 댓글이 없습니다.