PHP 양식 처리
PHP 슈퍼글로벌 $_GET 및 $_POST는 양식 데이터를 수집하는 데 사용됩니다.
PHP - 간단한 HTML 양식
아래 예는 두 개의 입력 필드와 제출 버튼이 있는 간단한 HTML 양식을 표시합니다.
예시
<html>
<body>
<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>
</body>
</html>
사용자가 위의 양식을 작성하고 제출 버튼을 클릭하면 처리를 위해 "welcome.php"라는 PHP 파일로 양식 데이터가 전송됩니다. 양식 데이터는 HTTP POST 방식으로 전송됩니다.
제출된 데이터를 표시하려면 모든 변수를 에코하면 됩니다. "welcome.php"는 다음과 같습니다.
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
출력은 다음과 같을 수 있습니다.
Welcome John
Your email address is [email protected]
HTTP GET 메서드를 사용하여 동일한 결과를 얻을 수도 있습니다.
예시
<html>
<body>
<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>
</body>
</html>
"welcome_get.php"는 다음과 같습니다.
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
위의 코드는 아주 간단합니다. 그러나 가장 중요한 것이 빠져 있습니다. 악성 코드로부터 스크립트를 보호하려면 양식 데이터의 유효성을 검사해야 합니다.
PHP 양식을 처리할 때 SECURITY를 생각하십시오!
이 페이지에는 양식 유효성 검사가 포함되어 있지 않으며 양식 데이터를 보내고 검색하는 방법만 보여줍니다.
그러나 다음 페이지에서는 보안을 염두에 두고 PHP 양식을 처리하는 방법을 보여줍니다! 양식 데이터의 적절한 유효성 검사는 해커와 스팸 발송자로부터 양식을 보호하는 데 중요합니다!
GET 대 POST
GET과 POST는 모두 배열을 생성합니다(예: array( key1 => value1, key2 => value2, key3 => value3, ...)). 이 배열은 키/값 쌍을 보유합니다. 여기서 키는 양식 컨트롤의 이름이고 값은 사용자의 입력 데이터입니다.
GET 및 POST는 모두 $_GET 및 $_POST로 처리됩니다. 이는 범위에 관계없이 항상 액세스할 수 있고 특별한 작업을 수행하지 않고도 모든 함수, 클래스 또는 파일에서 액세스할 수 있음을 의미하는 슈퍼글로벌입니다.
$_GET은 URL 매개변수를 통해 현재 스크립트에 전달된 변수의 배열입니다.
$_POST는 HTTP POST 메서드를 통해 현재 스크립트에 전달된 변수의 배열입니다.
언제 GET을 사용합니까?
GET 메서드를 사용하여 양식에서 보낸 정보는 모든 사람이 볼 수 있습니다 (모든 변수 이름과 값은 URL에 표시됨). GET은 또한 보낼 정보의 양에 제한이 있습니다. 제한은 약 2000자입니다. 그러나 URL에 변수가 표시되기 때문에 페이지를 북마크할 수 있습니다. 이것은 경우에 따라 유용할 수 있습니다.
GET은 민감하지 않은 데이터를 보내는 데 사용할 수 있습니다.
참고: GET은 비밀번호나 기타 민감한 정보를 보내는 데 사용하면 안 됩니다!
POST는 언제 사용합니까?
POST 메서드를 사용하여 양식에서 보낸 정보는 다른 사람에게 표시되지 않으며 (모든 이름/값은 HTTP 요청 본문에 포함됨) 보낼 정보의 양 에는 제한이 없습니다 .
또한 POST는 서버에 파일을 업로드하는 동안 다중 부분 바이너리 입력 지원과 같은 고급 기능을 지원합니다.
그러나 URL에 변수가 표시되지 않기 때문에 페이지를 북마크할 수 없습니다.
개발자는 양식 데이터를 보낼 때 POST를 선호합니다.
다음으로 PHP 양식을 안전한 방법으로 처리하는 방법을 살펴보겠습니다!