여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - 기초 - form 양식 처리
PHP – 기초 – form 양식 처리
2년전 작성
9개월전 수정

Form Handling

Superglobals $ _GET 및 $ _POST는 양식 데이터를 수집하는 데 사용된다.

$ _GET

HTML
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
PHP
<?php
echo '"Welcome" . $_GET["name"]';
echo '"Your email address is: " . $_GET["email"]';
?>
기본 예시
Welcome Mingg
Your email address is i@maz.kr

$ _POST

HTML
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
PHP
<?php
echo '"Welcome" . $_POST["name"]';
echo '"Your email address is: " . $_POST["email"]';
?>
기본 예시
Welcome Mingg
Your email address is i@maz.kr
위 코드들은 정말 간단하지만 가장 중요한 것이 빠져있다.
양식 데이터의 유효성을 검사하여 악성 코드로부터 스크립트를 보호해야 한다.

$ _GET vs $ _POST

GET과 POST 모두 배열을 만든다(예 : 배열 ( key1 => value1, key2 => value2, key3 => value3, …)).
이 배열은 키/값 쌍을 보유하며, 여기서 키는 양식 컨트롤의 이름이고 값은 사용자의 입력 데이터다.

GET과 POST는 모두 $_GET 및 $_POST로 처리된다.
이들은 Superglobals이므로 범위에 관계없이 항상 액세스 할 수 있으며 특별한 작업을 수행하지 않고도 모든 함수, 클래스 또는 파일에서 액세스 할 수 있다.

$_GET

$_GET는 URL 매개 변수를 통해 현재 스크립트에 전달되는 변수 배열이다.

GET 메서드를 사용하여 양식에서 보낸 정보는 모든 사람에게 표시된다(모든 변수 이름과 값이 URL에 표시됨).
GET은 또한 보낼 정보의 양에 제한이 있다.
제한은 약 2000자다.
그러나 변수가 URL에 표시되기 때문에 페이지를 북마크할 수 있다.
이 기능은 경우에 따라 유용할 수 있다.

위와 같은 이유로 GET은 중요하지 않은 데이터를 보내는 데 사용된다.

⭐ GET은 암호 또는 기타 민감한 정보를 보내는 데 사용해서는 안된다.

$_POST

$_POST는 HTTP POST 메서드를 통해 현재 스크립트에 전달되는 변수 배열이다.

POST 메서드를 사용하여 양식에서 보낸 정보는 다른 사람에게는 보이지 않으며(모든 이름/값은 HTTP 요청 본문에 포함됨) 보낼 정보의 양에는 제한이 없다.

또한 POST는 파일을 서버에 업로드하는 동안 다중 파트 바이너리 입력 지원과 같은 고급 기능을 지원한다.

그러나 변수가 URL에 표시되지 않기 때문에 페이지를 책갈피로 지정할 수 없다.

⭐ 양식 데이터를 보호하기위해 POST 사용을 선호한다.

참고

Mingg`s Diary
밍구
공부 목적 블로그