예제와 함께 GET, POST 메소드를 사용한 PHP 등록 양식

양식이란 무엇입니까?

웹사이트나 메일함에 로그인할 때, 당신은 양식과 상호작용을 하게 됩니다.

양식은 사용자로부터 입력을 받고 처리를 위해 웹 서버에 제출하는 데 사용됩니다.

아래 다이어그램은 양식 처리 프로세스를 보여줍니다.

PHP 폼

폼은 입력 상자, 체크 상자, 라디오 버튼 등과 같은 그래픽 사용자 인터페이스 항목을 포함하는 HTML 태그입니다.

양식은 다음을 사용하여 정의됩니다. … 태그 및 GUI 항목은 입력과 같은 양식 요소를 사용하여 정의됩니다.

언제, 왜 양식을 사용합니까?

  • 양식은 사용자 입력을 허용하는 유연하고 동적인 애플리케이션을 개발할 때 유용합니다.
  • 양식을 사용하여 데이터베이스의 기존 데이터를 편집할 수 있습니다.

양식 만들기

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과 제출 유형을 지정합니다.
  • 이름/성: 입력 상자의 레이블입니다.
  • 입력 상자 태그입니다
  • 새 줄 태그입니다
  • 양식이 제출되었는지 여부를 확인하는 데 사용되는 숨겨진 값입니다.
  • 클릭하면 처리를 위해 서버에 양식을 제출하는 버튼입니다.

양식 데이터를 서버에 제출

양식의 작업 속성은 데이터를 처리하는 제출 URL을 지정합니다. method 속성은 제출 유형을 지정합니다.

PHP POST 방법

  • 이는 HTTP POST 메소드를 통해 제출된 값을 가져오는 데 사용되는 내장 PHP 슈퍼 전역 배열 변수입니다.
  • 배열 변수는 프로그램의 모든 스크립트에서 액세스할 수 있습니다. 그것은 글로벌 범위를 가지고 있습니다.
  • 이 방법은 URL에 양식 게시물 값을 표시하지 않으려는 경우에 이상적입니다.
  • 게시 방식을 사용하는 좋은 예는 로그인 정보를 서버에 제출하는 경우입니다.

구문은 다음과 같습니다.

<?php
 $_POST['variable_name'];
?>

이리,

  • "$_POST[...]"는 PHP 배열
  • "'variable_name'"은 URL 변수 이름입니다.

PHP GET 방식

  • 이는 HTTP GET 메소드를 통해 제출된 값을 가져오는 데 사용되는 내장 PHP 슈퍼 전역 배열 변수입니다.
  • 배열 변수는 프로그램의 모든 스크립트에서 액세스할 수 있습니다. 그것은 글로벌 범위를 가지고 있습니다.
  • 이 메소드는 URL에 양식 값을 표시합니다.
  • 사용자가 결과를 북마크할 수 있으므로 검색 엔진 양식에 이상적입니다.

구문은 다음과 같습니다.

<?php
$_GET['variable_name'];
?>

이리,

  • "$_GET[...]"은 PHP 배열입니다.
  • "'variable_name'"은 URL 변수 이름입니다.

GET 대 POST 방법

POST 바로
URL에 표시되지 않는 값 URL에 표시되는 값
HTTP 본문을 통해 제출되므로 값 길이에 제한이 없습니다. 값의 길이에 제한이 있으며 보통 255자입니다. 이는 값이 URL에 표시되기 때문입니다. 문자의 상한은 브라우저에 따라 다릅니다.
HTTP 본문에 Php_POST 값을 캡슐화하는 데 소요되는 시간으로 인해 Php_GET 메서드에 비해 성능이 낮습니다. URL에 값을 추가하는 간단한 특성으로 인해 POST 방식에 비해 성능이 높습니다.
문자열, 숫자, 이진수 등과 같은 다양한 데이터 유형을 지원합니다. URL에 값이 표시되므로 문자열 데이터 유형만 지원합니다.
결과를 북마크할 수 없습니다. URL 값의 가시성으로 인해 결과가 북마크될 수 있습니다.

아래 다이어그램은 get과 post의 차이점을 보여줍니다.

GET 대 POST 방법

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="/ko/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>

이리,

  • $_POST[] 배열에 form_submitted 숨겨진 필드가 채워졌는지 확인하고 감사 인사와 이름 메시지를 표시합니다.

    $_POST[] 배열에 form_fobmitted 필드가 채워지지 않으면 양식이 표시됩니다.

더 많은 예제

간단한 검색 엔진

양식 제출 유형으로 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="/ko/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(XNUMX) 또는 true가 제출됩니다.

등록 양식 코드를 수정하고 사용자가 서비스 약관에 동의할 수 있는 확인 버튼을 포함할 예정입니다.

<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="/ko/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>

브라우저에서 위 양식 보기

체크박스, 라디오 버튼 작업

이름과 성을 입력하세요.

서비스 약관 동의 체크박스가 선택되지 않았습니다.

제출 버튼을 클릭하십시오

다음과 같은 결과가 나옵니다

체크박스, 라디오 버튼 작업

양식 링크로 돌아가서 체크박스를 선택하세요

체크박스, 라디오 버튼 작업

제출 버튼을 클릭하십시오

다음과 같은 결과가 나옵니다

체크박스, 라디오 버튼 작업

요약

  • 양식은 사용자로부터 데이터를 얻는 데 사용됩니다.
  • 양식은 HTML 태그를 사용하여 생성됩니다.
  • POST 또는 GET 메서드를 사용하여 처리하기 위해 양식을 서버에 제출할 수 있습니다.
  • POST 메서드를 통해 제출된 양식 값은 HTTP 본문에 캡슐화됩니다.
  • GET 메서드를 통해 제출된 양식 값은 URL에 추가되어 표시됩니다.