예제와 함께 GET, POST 메소드를 사용한 PHP 등록 양식
⚡ 스마트 요약
PHP의 폼 처리는 HTML 폼에서 사용자 입력을 받아 $_POST 및 $_GET 슈퍼글로벌 변수를 통해 서버에서 처리합니다. 이 예제에서는 회원가입 폼을 만들고, POST 및 GET 메서드를 설명하고 비교하며, 필드, 체크박스, 검색 입력을 처리하는 방법을 보여줍니다.

양식이란 무엇입니까?
웹사이트나 메일함에 로그인할 때, 여러분은 양식과 상호작용하는 것입니다.
양식은 사용자로부터 입력을 받고 처리를 위해 웹 서버에 제출하는 데 사용됩니다.
아래 다이어그램은 양식 처리 프로세스를 보여줍니다.
폼은 입력 상자, 체크박스, 라디오 버튼 등과 같은 그래픽 사용자 인터페이스 요소를 포함하는 HTML 태그입니다.
폼은 다음을 사용하여 정의됩니다. … 태그와 GUI 항목은 입력과 같은 폼 요소를 사용하여 정의됩니다.
언제, 왜 양식을 사용합니까?
- 양식은 개발할 때 유용합니다.ping 사용자 입력을 받아들이는 유연하고 동적인 애플리케이션.
- 양식을 사용하면 데이터베이스에 이미 존재하는 데이터를 편집할 수 있습니다.
양식 만들기
HTML 태그를 사용하여 양식을 만듭니다. 다음은 양식을 만드는 데 필요한 최소한의 목록입니다.
- 열기 및 닫기 양식 태그 …
- 양식 제출 유형 POST 또는 GET
- 복종 URL 제출된 데이터를 처리할 것입니다.
- 입력 상자, 텍스트 영역, 버튼, 체크박스 등과 같은 입력 필드.
아래 코드는 간단한 회원가입 양식을 생성합니다.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
위 코드를 웹 브라우저에서 보면 다음과 같은 형식이 표시됩니다.
이리,
- … 열기 및 닫기 양식 태그입니다.
- action="registration_form.php" method="POST"는 목적지를 지정합니다. URL 그리고 제출 유형입니다.
- 이름/성: 입력 상자의 레이블입니다.
- 입력 상자 태그입니다
- 새 줄 태그입니다
- 양식이 제출되었는지 여부를 확인하는 데 사용되는 숨겨진 값입니다.
- 이 버튼은 클릭하면 양식이 서버로 전송되어 처리되는 버튼입니다.
양식 데이터를 서버에 제출
폼의 action 속성은 제출 여부를 지정합니다. URL 데이터를 처리하는 메서드입니다. method 속성은 제출 유형을 지정합니다.
PHP POST 방법
- 이는 HTTP POST 메서드를 통해 제출된 값을 가져오는 데 사용되는 PHP 내장 슈퍼글로벌 배열 변수입니다.
- 배열 변수는 프로그램의 모든 스크립트에서 액세스할 수 있습니다. 그것은 글로벌 범위를 가지고 있습니다.
- 이 방법은 폼 제출 값을 표시하고 싶지 않을 때 이상적입니다. URL.
- POST 메서드를 사용하는 좋은 예는 서버에 로그인 정보를 제출할 때입니다.
구문은 다음과 같습니다.
<?php
$_POST['variable_name'];
?>
이리,
- "$_POST[...]"는 PHP 배열
- "'variable_name'"은 폼 필드 이름입니다.
PHP GET 방식
- 이는 HTTP GET 메서드를 통해 제출된 값을 가져오는 데 사용되는 PHP 내장 슈퍼글로벌 배열 변수입니다.
- 배열 변수는 프로그램의 모든 스크립트에서 액세스할 수 있습니다. 그것은 글로벌 범위를 가지고 있습니다.
- 이 메서드는 폼 값을 표시합니다. URL.
- 검색 엔진 양식에 이상적이며, 사용자가 검색 결과를 북마크할 수 있도록 해줍니다.
구문은 다음과 같습니다.
<?php
$_GET['variable_name'];
?>
이리,
- "$_GET[...]"은 PHP 배열입니다.
- "'variable_name'"은 URL 변수 이름.
GET 대 POST 방법
| POST | 바로 |
|---|---|
| 표시되지 않는 값 URL | 표시되는 값 URL |
| HTTP 요청 본문을 통해 전송되므로 값의 길이에 제한이 없습니다. | 값의 길이에 제한이 있으며, 일반적으로 255자입니다. 이는 값이 표시되는 방식 때문입니다. URL참고로, 문자 수의 상한은 브라우저에 따라 다릅니다. |
| HTTP 본문에 POST 값을 캡슐화하는 데 시간이 소요되므로 GET 방식보다 성능이 떨어집니다. | POST 방식보다 성능이 더 높은데, 이는 값을 단순히 추가하는 간단한 방식 때문입니다. URL. |
| 문자열, 숫자, 이진 데이터 등 다양한 데이터 형식을 지원합니다. | 값이 문자열로 표시되므로 문자열 데이터 형식만 지원합니다. URL |
| 검색 결과를 북마크할 수 없습니다. | 결과가 명확하게 표시되므로 북마크에 저장할 수 있습니다. URL |
아래 그림은 GET과 POST의 차이점을 보여줍니다.
등록 양식 데이터 처리
등록 양식은 양식의 작업 속성에 지정된 대로 데이터를 자체적으로 제출합니다.
폼이 제출되면 해당 값들이 $_POST 슈퍼글로벌 배열에 채워집니다.
$_POST 배열에 폼 값이 채워졌는지 확인하고 데이터를 처리하기 위해 PHP isset 함수를 사용하겠습니다.
회원가입 양식에 데이터를 처리하는 PHP 코드를 추가하도록 수정하겠습니다. 수정된 코드는 아래와 같습니다.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> // this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
이리,
- `form_submitted`라는 숨겨진 필드가 `$_POST[]` 배열에 있는지 확인하고, 있다면 감사 메시지와 함께 이름을 표시합니다. `form_submitted` 필드가 `$_POST[]` 배열에 없다면, 폼이 표시됩니다.
더 많은 예제
간단한 검색 엔진
PHP GET 메서드를 폼 제출 유형으로 사용하는 간단한 검색 엔진을 설계하겠습니다.
단순화를 위해 다음을 사용하겠습니다. PHP if 문 출력을 결정합니다.
위의 등록 양식에 동일한 HTML 코드를 사용하고 최소한의 수정만 적용하겠습니다.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
위 페이지를 웹 브라우저에서 열어보세요.
다음 양식이 표시됩니다.
GET을 대문자로 입력한 다음 제출 버튼을 클릭하세요.
다음 내용이 표시됩니다.
아래 그림은 다음을 보여줍니다. URL 위의 결과에 대해서.
참고 사항 URL search_term과 form_submitted의 값을 표시했습니다. GET이 아닌 다른 단어를 입력한 다음 제출 버튼을 클릭하고 어떤 결과가 나오는지 확인해 보세요.
체크박스, 라디오 버튼 작업
사용자가 체크박스나 라디오 버튼을 선택하지 않으면 아무 값도 제출되지 않습니다. 사용자가 체크박스나 라디오 버튼을 선택하면 1(참) 값이 제출됩니다.
등록 양식 코드를 수정하고 사용자가 서비스 약관에 동의할 수 있는 확인 버튼을 포함할 예정입니다.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
위 양식을 브라우저에서 열어보세요.
이름과 성을 입력하세요.
서비스 약관 동의 체크박스가 선택되지 않았습니다.
제출 버튼을 클릭하십시오.
다음과 같은 결과가 나타납니다.
'양식으로 돌아가기' 링크를 클릭한 다음 확인란을 선택하세요.
제출 버튼을 클릭하십시오.
다음과 같은 결과가 나타납니다.










