루젠소프트 로고

216.73.216.198 TODAY : 3,814

PHP 강의

 > 

PHP - 초급

📚 PHP 초급 - 7주차: HTML 폼 처리 및 GET/POST 방식 - 03 $_GET,$_POST, $_REQUEST 슈퍼 글로벌 변수

📚 PHP 초급 - 7주차: HTML 폼 처리 및 GET/POST 방식 - 03 $_GET,$_POST, $_REQUEST 슈퍼 글로벌 변수
평점 10.0 라이센스 free
사용자평점 10.0 운영체제
다운로드 1 파일크기 0
제작사 LUZENSOFT 등록일 2025-07-01 16:26:52
조회수 1
- 설명

📚 PHP 초급 - 7주차: HTML 폼 처리 및 GET/POST 방식 - 03 $_GET, $_POST, $_REQUEST 슈퍼 글로벌 변수









지난 포스팅에서는 #GET 방식과 #POST 방식의 차이점을 이해하고, 데이터를 어떻게 전송하는지 알아보았습니다. 이번 시간에는 #PHP에서 전송된 데이터를 받아서 처리하는 데 사용되는 핵심적인 #슈퍼 #글로벌 #변수인 $_GET, $_POST, 그리고 **$_REQUEST**에 대해 자세히 학습하겠습니다.




슈퍼 글로벌 변수란?


#슈퍼 #글로벌 변수는 PHP의 특별한 내장 변수로, 스크립트의 어느 곳에서나 접근할 수 있습니다. 사용자가 전송한 데이터를 포함하여 서버 환경, 쿠키, 세션 정보 등 다양한 정보를 담고 있습니다. $_GET, $_POST, $_REQUEST는 모두 이러한 슈퍼 글로벌 변수에 해당하며, 주로 #HTML 폼을 통해 전송된 데이터를 처리하는 데 활용됩니다.

uploadImage




$_GET 슈퍼 글로벌 변수




$_GET은 #GET 방식으로 전송된 데이터를 연관 배열(associative array) 형태로 저장하는 슈퍼 글로벌 변수입니다. #URL의 쿼리 문자열(? 뒤에 오는 key=value 쌍) 형태로 전달된 데이터에 접근할 때 사용합니다.

uploadImage



사용 예시




다음과 같은 #HTML 폼이 GET 방식으로 데이터를 전송한다고 가정해 봅시다.

HTML

<form action="process_get.php" method="GET">
    <label for="name">이름:</label><br>
    <input type="text" id="name" name="name"><br><br>
    <label for="email">이메일:</label><br>
    <input type="email" id="email" name="email"><br><br>
    <input type="submit" value="전송">
</form>



process_get.php 파일에서 $_GET 변수를 사용하여 데이터를 받을 수 있습니다.

PHP

<?php
if (isset($_GET['name']) && isset($_GET['email'])) {
    $name = $_GET['name'];
    $email = $_GET['email'];

    echo "GET 방식으로 받은 이름: " . htmlspecialchars($name) . "<br>";
    echo "GET 방식으로 받은 이메일: " . htmlspecialchars($email) . "<br>";
} else {
    echo "GET 방식으로 전송된 데이터가 없습니다.";
}
?>



위 코드에서 $_GET['name']$_GET['email']을 통해 폼에서 입력된 이름과 이메일 값을 각각 접근할 수 있습니다. isset() 함수는 해당 키가 $_GET 배열에 존재하는지 확인하는 데 사용됩니다. htmlspecialchars() 함수는 #HTML 특수 문자를 안전하게 처리하여 #XSS 공격을 방지하는 데 도움을 줍니다.






$_POST 슈퍼 글로벌 변수


$_POST는 #POST 방식으로 전송된 데이터를 연관 배열 형태로 저장하는 슈퍼 글로벌 변수입니다. #HTTP 요청 본문(body)을 통해 전달된 데이터에 접근할 때 사용합니다.

uploadImage



사용 예시




다음과 같은 #HTML 폼이 POST 방식으로 데이터를 전송한다고 가정해 봅시다.

HTML

<form action="process_post.php" method="POST">
    <label for="message">메시지:</label><br>
    <textarea id="message" name="message"></textarea><br><br>
    <input type="submit" value="전송">
</form>



process_post.php 파일에서 $_POST 변수를 사용하여 데이터를 받을 수 있습니다.

PHP

<?php
if (isset($_POST['message'])) {
    $message = $_POST['message'];

    echo "POST 방식으로 받은 메시지: " . htmlspecialchars($message) . "<br>";
} else {
    echo "POST 방식으로 전송된 데이터가 없습니다.";
}
?>



위 코드에서 $_POST['message']를 통해 폼에서 입력된 메시지 값을 접근할 수 있습니다.






$_REQUEST 슈퍼 글로벌 변수


$_REQUEST는 #GET, #POST, 그리고 #COOKIE 방식으로 전송된 데이터를 모두 포함하는 연관 배열 형태의 슈퍼 글로벌 변수입니다. 즉, $_GET, $_POST, $_COOKIE에 담긴 모든 데이터를 $_REQUEST 하나로 접근할 수 있습니다.

uploadImage



사용 시 주의사항




$_REQUEST는 어떤 방식으로 데이터가 전송되었는지 명확하게 알 수 없기 때문에 사용에 주의해야 합니다. 보안적인 측면에서 취약해질 수 있으며, 예상치 못한 데이터 충돌이 발생할 수도 있습니다. 따라서 가능한 한 데이터가 전송될 방식을 명확히 구분하여 $_GET 또는 $_POST를 사용하는 것이 권장됩니다.




사용 예시




어떤 방식으로 데이터가 전송되었는지 상관없이 'data'라는 키의 값을 받고 싶을 경우 $_REQUEST를 사용할 수 있습니다.

PHP

<?php
if (isset($_REQUEST['data'])) {
    $data = $_REQUEST['data'];
    echo "전송된 데이터: " . htmlspecialchars($data) . "<br>";
} else {
    echo "전송된 'data'가 없습니다.";
}
?>






결론




$_GET, $_POST, $_REQUEST 슈퍼 글로벌 변수는 #PHP에서 #HTML 폼 데이터를 처리하는 데 있어 핵심적인 역할을 합니다. 데이터 전송 방식에 따라 적절한 변수를 선택하여 사용하는 것이 중요하며, 보안을 고려하여 가능한 한 $_GET 또는 $_POST를 명시적으로 사용하는 것을 권장합니다. 다음 시간에는 폼 유효성 검사(Form Validation)에 대해 알아보겠습니다.