소개
PHP의 변수 네임스페이스는 HTML 폼 요소, 쿠키, 이미지 제출 버튼의 화면 좌표와 같은 다양한 외부 소스로부터 값이 채워집니다. 즉, 사용자가 웹 페이지를 통해 전송한 데이터나 브라우저에 저장된 정보가 PHP 스크립트 내부의 변수로 자동으로 전달되는 것입니다.
HTML 폼 요소
웹 페이지가 HTML 폼을 통해 PHP 스크립트로 데이터를 전송하면, 해당 데이터는 $_POST, $_GET, $_REQUEST 변수의 형태로 스크립트에 자동으로 전달됩니다. 다음은 일반적인 HTML 폼의 예입니다.
<form action="testscript.php" method="POST">
<input type="text" name="name">
<input type="text" name="age">
<input type="submit" value="submit">
</form>
사용자가 입력한 데이터는 PHP 스크립트에서 $_POST 연관 배열로 전달됩니다.
<?php echo "Name : " . $_POST["name"] . "<br>"; echo "Age : " . $_POST["age"]; ?>
HTML 페이지를 testscript.php 파일과 함께 문서 루트(document root)에 저장한 뒤, 브라우저에서 페이지를 열고 데이터를 입력해 보세요. 결과는 다음과 같이 출력됩니다.
Name : xyz Age : 20
HTML 폼에서 method='GET'을 사용하면 action 속성에 지정된 URL이 HTTP GET 방식으로 요청되며, 폼 데이터는 $_GET 배열에 담기게 됩니다. 한편 $_REQUEST 배열은 $_GET, $_POST, $_COOKIE라는 사전 정의된 변수들의 내용을 모두 포함합니다. 예를 들어 'age'라는 이름의 폼 요소 데이터는 $_GET['age']와 $_REQUEST['age']로 접근할 수 있습니다.
이미지 버튼 좌표
표준 제출(submit) 버튼 외에도, HTML에서는 image 입력 타입을 활용하여 어떤 이미지든 버튼처럼 사용할 수 있습니다.
<input type="image" src="image.gif" name="sub" />
이 경우 사용자가 이미지를 클릭하면 클릭 지점의 x, y 화면 좌표가 함께 요청으로 전송되며, $_POST['sub_x']와 $_POST['sub_y']로 접근할 수 있습니다. 이를 활용하면 사용자가 이미지의 어느 위치를 클릭했는지 파악할 수 있습니다.
쿠키 변수
PHP는 쿠키를 저장하고 읽어오는 메커니즘을 기본적으로 지원합니다. 쿠키란 서버가 응답을 보낼 때 클라이언트(사용자)의 컴퓨터에 저장해 두는 작은 데이터 조각입니다. 이후 클라이언트가 보내는 모든 요청에는 HTML 폼 요소 등의 요청 매개변수와 함께 쿠키도 다시 서버로 전송됩니다. PHP는 setcookie() 함수를 사용하여 쿠키를 저장하며, 저장된 쿠키는 $_COOKIE 배열을 통해 읽을 수 있습니다. 다음은 간단한 예제입니다.
예제
<?php
if (isset($_COOKIE['name']) && isset($_COOKIE['age'])) {
echo "Name:" . $_COOKIE['name'] . " age:" . $_COOKIE['age'];
}
setcookie('name', 'XYZ');
setcookie('age', 20);
?>
위 스크립트를 브라우저에서 처음 호출하면 'name'과 'age' 쿠키가 설정됩니다. 두 번째 호출부터는 쿠키가 $_COOKIE 배열에 담겨 서버로 전송되며, 아래와 같이 출력됩니다.
출력 결과
Name:XYZ age:20