แบบฟอร์มลงทะเบียน PHP โดยใช้ GET วิธี POST พร้อมตัวอย่าง

แบบฟอร์มคืออะไร?

เมื่อคุณเข้าสู่ระบบในเว็บไซต์หรือกล่องจดหมายของคุณ คุณกำลังโต้ตอบกับแบบฟอร์ม

แบบฟอร์มจะใช้เพื่อรับข้อมูลจากผู้ใช้และส่งไปยังเว็บเซิร์ฟเวอร์เพื่อดำเนินการ

แผนภาพด้านล่างแสดงกระบวนการจัดการแบบฟอร์ม

แบบฟอร์ม 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

  • นี่คือตัวแปรอาร์เรย์ซูเปอร์โกลบอล PHP ในตัวที่ใช้เพื่อรับค่าที่ส่งผ่านวิธี HTTP POST
  • ตัวแปรอาร์เรย์สามารถเข้าถึงได้จากสคริปต์ใดๆ ในโปรแกรม มันมีขอบเขตทั่วโลก
  • วิธีนี้เหมาะที่สุดเมื่อคุณไม่ต้องการแสดงค่าการโพสต์แบบฟอร์มใน URL
  • ตัวอย่างที่ดีของการใช้วิธีการโพสต์คือเมื่อส่งรายละเอียดการเข้าสู่ระบบไปยังเซิร์ฟเวอร์

มีรูปแบบประโยคดังนี้

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

ที่นี่

วิธีการ PHP GET

  • นี่คือตัวแปรอาร์เรย์ซูเปอร์โกลบอล PHP ในตัวที่ใช้เพื่อรับค่าที่ส่งผ่านวิธี HTTP GET
  • ตัวแปรอาร์เรย์สามารถเข้าถึงได้จากสคริปต์ใดๆ ในโปรแกรม มันมีขอบเขตทั่วโลก
  • วิธีการนี้จะแสดงค่าแบบฟอร์มใน URL
  • เหมาะอย่างยิ่งสำหรับแบบฟอร์มเครื่องมือค้นหาเนื่องจากช่วยให้ผู้ใช้สามารถบุ๊กมาร์กผลลัพธ์ได้

มีรูปแบบประโยคดังนี้

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

ที่นี่

  • “$_GET[…]” คืออาร์เรย์ PHP
  • “'variable_name'” คือชื่อตัวแปร URL

GET เทียบกับวิธี POST

POST GET
ค่าไม่ปรากฏใน URL ค่าที่มองเห็นได้ใน URL
ไม่จำกัดความยาวของค่าเนื่องจากถูกส่งผ่านเนื้อหาของ HTTP มีข้อจำกัดเกี่ยวกับความยาวของค่า โดยปกติคือ 255 อักขระ เนื่องจากค่าจะแสดงอยู่ใน URL โปรดทราบว่าขีดจำกัดบนของอักขระจะขึ้นอยู่กับเบราว์เซอร์
มีประสิทธิภาพต่ำกว่าเมื่อเปรียบเทียบกับวิธี Php_GET เนื่องจากเวลาที่ใช้ในการห่อหุ้มค่า Php_POST ในส่วนเนื้อหา HTTP มีประสิทธิภาพสูงเมื่อเทียบกับวิธี POST เนื่องจากลักษณะที่เรียบง่ายของการต่อท้ายค่าใน URL
รองรับข้อมูลหลายประเภท เช่น สตริง ตัวเลข ไบนารี ฯลฯ รองรับเฉพาะข้อมูลชนิดสตริงเท่านั้นเนื่องจากค่าจะแสดงอยู่ใน URL
ไม่สามารถทำเครื่องหมายผลลัพธ์ไว้ในสมุดบัญชีได้ สามารถบันทึกผลลัพธ์ได้เนื่องจากมองเห็นค่าใน URL ได้

แผนภาพด้านล่างแสดงความแตกต่างระหว่างการรับและโพสต์

GET เทียบกับวิธี POST

GET เทียบกับวิธี POST

กำลังประมวลผลข้อมูลแบบฟอร์มการลงทะเบียน

แบบฟอร์มลงทะเบียนส่งข้อมูลถึงตัวเองตามที่ระบุไว้ในแอตทริบิวต์การดำเนินการของแบบฟอร์ม

เมื่อส่งแบบฟอร์มแล้ว ค่าต่างๆ จะถูกเติมลงในอาร์เรย์ซูเปอร์โกลบอล $_POST

เราจะใช้ฟังก์ชัน PHP isset เพื่อตรวจสอบว่ามีการกรอกค่าแบบฟอร์มในอาร์เรย์ $_POST และประมวลผลข้อมูลหรือไม่

เราจะแก้ไขแบบฟอร์มการลงทะเบียนเพื่อรวมโค้ด 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="/th/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_fobmitted ลงในอาร์เรย์ $_POST[] ฟอร์มจะถูกแสดง

ตัวอย่างเพิ่มเติม

เครื่องมือค้นหาที่เรียบง่าย

เราจะออกแบบเครื่องมือค้นหาอย่างง่ายที่ใช้วิธี PHP_GET เป็นประเภทการส่งแบบฟอร์ม

เพื่อความเรียบง่าย เราจะใช้ a PHP ถ้าคำสั่ง เพื่อกำหนดผลลัพธ์

เราจะใช้โค้ด 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="/th/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="/th/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