แบบฟอร์มลงทะเบียน PHP โดยใช้ GET วิธี POST พร้อมตัวอย่าง
แบบฟอร์มคืออะไร?
เมื่อคุณเข้าสู่ระบบในเว็บไซต์หรือกล่องจดหมายของคุณ คุณกำลังโต้ตอบกับแบบฟอร์ม
แบบฟอร์มจะใช้เพื่อรับข้อมูลจากผู้ใช้และส่งไปยังเว็บเซิร์ฟเวอร์เพื่อดำเนินการ
แผนภาพด้านล่างแสดงกระบวนการจัดการแบบฟอร์ม
แบบฟอร์มคือแท็ก 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
- นี่คือตัวแปรอาร์เรย์ซูเปอร์โกลบอล PHP ในตัวที่ใช้เพื่อรับค่าที่ส่งผ่านวิธี HTTP POST
- ตัวแปรอาร์เรย์สามารถเข้าถึงได้จากสคริปต์ใดๆ ในโปรแกรม มันมีขอบเขตทั่วโลก
- วิธีนี้เหมาะอย่างยิ่งเมื่อคุณไม่ต้องการแสดงค่าที่ส่งมาจากฟอร์มในหน้าเว็บ URL.
- ตัวอย่างที่ดีของการใช้วิธีการโพสต์คือเมื่อส่งรายละเอียดการเข้าสู่ระบบไปยังเซิร์ฟเวอร์
มีรูปแบบประโยคดังนี้
<?php $_POST['variable_name']; ?>
ที่นี่
- “$_POST[…]” คือไฟล์ อาร์เรย์ PHP
- “'variable_name'” คือ URL ชื่อตัวแปร
วิธีการ 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 |
แผนภาพด้านล่างแสดงความแตกต่างระหว่างการรับและโพสต์
กำลังประมวลผลข้อมูลแบบฟอร์มการลงทะเบียน
แบบฟอร์มลงทะเบียนส่งข้อมูลถึงตัวเองตามที่ระบุไว้ในแอตทริบิวต์การดำเนินการของแบบฟอร์ม
เมื่อส่งแบบฟอร์มแล้ว ค่าต่างๆ จะถูกเติมลงในอาร์เรย์ซูเปอร์โกลบอล $_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.










