การส่งข้อมูลจากฟอร์ม (form) แบบ get vs post (เก็ท vs โพส)

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
pprn
PHP Super Member
PHP Super Member
โพสต์: 294
ลงทะเบียนเมื่อ: 02/07/2018 10:45 am

การส่งข้อมูลจากฟอร์ม (form) แบบ get vs post (เก็ท vs โพส)

โพสต์โดย pprn » 04/07/2018 11:36 am

    การส่งข้อมูลจาก ฟอร์ม (form) มีวิธีการส่งอยู่ 2 แบบนั่นคือ แบบ GET กับแบบ POST

    1. การส่งข้อมูลจากฟอร์ม (form) แบบ GET นั้น จะส่งข้อมูลแนบต่อท้าย URL ในแบบ Query String ทำให้ผู้ใช้งานสามารถมองเห็นข้อมูลที่ส่งไป
ได้ เหมาะสำหรับการส่งข้อมูลสั้นๆ ไม่เกิน 256 ตัว

    2. การส่งข้อมูลจากฟอร์ม (form) แบบ POST นั้น จะส่งข้อมูลไม่แสดงข้อมูลที่ส่งไปให้เห็นผ่าน URL เหมาะสำหรับการส่งข้อมูลแบบยาวๆ
เพราะไม่มีข้อจำกัดของเรื่องขนาดของข้อมูลที่ส่ง และต้องการความปลอดภัย


    1. การส่งข้อมูลจากฟอร์ม (form) แบบ GET

    รูปแบบการส่งข้อมูลฟอร์ม (form) แบบ GET

โค้ด: เลือกทั้งหมด

<form action="ไฟล์ปลายทางที่ใช้สำหรับเขียนสคิปต์ PHP" method="get">>


ตัวอย่าง

    โค้ด การส่งข้อมูลจากฟอร์ม (form) แบบ GET

ส่วนของฟอร์ม (form) สำหรับรับข้อมูลจากผู้ใช้

โค้ด: เลือกทั้งหมด

<form action="welcome.php" method="get">   
Name: <input type="text" name="name1" />     
Age: <input type="text" name="age1" />
<input type="submit" />
</form>


    โค้ด ส่วนของ PHP ที่ได้จากฟอร์ม (form)

ส่วนของ PHP ที่ได้จากฟอร์ม (form) ไปประมวลผล ในการจะรับข้อมูลแบบ GET นั้น ฟอร์ม (form) ที่ส่งข้อมูลมา จะต้องกำหนด method="get" จะใช้ตัวแปร $_GET ในการรับข้อมูล

โค้ด: เลือกทั้งหมด

<form>
    Welcome <?php echo $_GET["name1"]; ?>.<br>
You are <?php echo $_GET["age1"]; ?> years old!
</form>



ผลลัพธ์

    ส่วนของฟอร์ม (form) สำหรับรับข้อมูลจากผู้ใช้
get1.JPG
การส่งข้อมูลจากฟอร์ม (form) แบบ GET
get1.JPG (18.76 KiB) เปิดดู 45 ครั้ง


    ส่วนของ PHP ที่ได้จากฟอร์ม (form) จะส่งข้อมูลแนบต่อท้าย URL มาด้วย
get2.JPG
ส่วนของ PHP ที่ได้จากฟอร์ม (form) แบบ GET
get2.JPG (18.58 KiB) เปิดดู 45 ครั้ง



    2. การส่งข้อมูลจากฟอร์ม (form) แบบ POST

    รูปแบบการส่งข้อมูลฟอร์ม (form) แบบ POST

โค้ด: เลือกทั้งหมด

<form action="ไฟล์ปลายทางที่ใช้สำหรับเขียนสคิปต์ PHP" method="post">>


ตัวอย่าง

    โค้ด การส่งข้อมูลจากฟอร์ม (form) แบบ POST

ส่วนของฟอร์ม (form) สำหรับรับข้อมูลจากผู้ใช้

โค้ด: เลือกทั้งหมด

<form action="welcomePage.php" method="post">
    Name: <input type="text" name="name1" />
Age: <input type="text" name="age1" />
</form>


    โค้ด ส่วนของ PHP ที่ได้จากฟอร์ม (form)

ส่วนของ PHP ที่ได้จากฟอร์ม (form) ไปประมวลผล ในการรับข้อมูลในการจะรับข้อมูลแบบ POST นั้น ฟอร์ม(form) ที่ส่งข้อมูลมา จะต้องกำหนด method="post" ในภาษา PHP จะใช้ตัวแปร $_POST

โค้ด: เลือกทั้งหมด

<form>
Welcome <?php echo $_POST["name1"]; ?><br>
You are <?php echo $_POST["age1"]; ?> years old!
</form>



ผลลัพธ์

    ส่วนของฟอร์ม (form) สำหรับรับข้อมูลจากผู้ใช้
Post1.JPG
การส่งข้อมูลจากฟอร์ม (form) แบบ POST
Post1.JPG (18.76 KiB) เปิดดู 45 ครั้ง


    ส่วนของ PHP ที่ได้จากฟอร์ม (form) จะ ไม่ ส่งข้อมูลแนบต่อท้าย URL มาด้วย
Post2.JPG
ส่วนของ PHP ที่ได้จากฟอร์ม (form) แบบ POST
Post2.JPG (16.15 KiB) เปิดดู 45 ครั้ง


การเลือกระหว่างการส่งข้อมูลแบบ GET หรือ POST

    - ควรใช้ POST เมื่อข้อมูลที่ส่งเป็นความลับ เช่น พาสเวิร์ด เป็นต้น
    - ควรใช้ POST เมื่อต้องการส่งข้อมูลขนาดใหญ่
    - ถ้าต้องการส่งข้อมูลที่เป็นความลับแบบ GET ควรเข้ารหัสไว้ด้วย


----------------------------------------------------------------------------------------------------------------------------------------------------------------
_____________________________________________________________________________________________
บทความนี้เเป็นบทความที่จัดทำขึ้นเพื่อเนะนำเครื่องมือช่วยสำหรับนักพัฒนา PHP ซึ่งเป็นความรู้พื้นฐานในการพัฒนา PHP OOP ต่อไป เเละขอเเนะนำความรู้ที่เกี่ยวข้องกับโดยสามารถศึกษาได้จากบทเรียน PHP ได้ที่นี่ เพื่อเพิ่มความเข้าใจในการใช้งานเครื่องมือต่างๆ ค่ะ
_____________________________________________________________________________________________

----------------------------------------------------------------------------------------------------------------------------------------------------------------

ย้อนกลับไปยัง

ผู้ใช้งานขณะนี้

กำลังดูบอร์ดนี้: 9 และ บุคคลทั่วไป 0 ท่าน