รับข้อมูลจาก Form แบบ GET กับ แบบ POST

ไอที | PHP | 83576 |

รับข้อมูลจาก Form แบบ GET กับ แบบ POST

การรับข้อมูลที่ส่งมาจากฟอร์ม Form นั้น มีวิธีการส่งอยู่ 2 แบบนั่นคือ แบบ GET กับแบบ POST
แบบ GET นั้น จะส่งค่าผ่านทาง URL ทำให้ผู้ใช้งานสามารถมองเห็นข้อมูลที่ส่งไปได้
แบบ POST นั้น เวลาส่งข้อมูลผู้ใช้งานจะไม่มองเห็นข้อมูลที่ส่งไป และไม่มีข้อจำกัดของเรื่องขนาดของข้อมูลที่ส่งด้วย
ดูวิธีการสร้าง form สำหรับการส่งข้อมูลได้ที่ การสร้าง Form ในภาษา HTML

การรับข้อมูลแบบ GET

การรับข้อมูลแบบ GET ในภาษา PHP จะใช้ตัวแปร $_GET ในการรับข้อมูล
ในการจะรับข้อมูลแบบ GET นั้น Form ที่ส่งข้อมูลมา จะต้องกำหนด method="get"

ตัวอย่างการส่งข้อมูลแบบ GET

Form HTML ที่ต้องการส่งข้อมูล
<form action="welcome.php" method="get">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
ไฟล์ PHP ที่รับข้อมูลที่ส่งมาจาก Form จากตัวอย่างข้างบน มีการ action ไปที่ไฟล์ welcome.php ฉะนั้นไฟล์ PHP ที่รับข้อมูลจะต้องชื่อไฟล์ว่า welcome.php
Welcome <?php echo $_GET["name"]; ?>.
You are <?php echo $_GET["age"]; ?> years old! </form>
ตัวอย่าง URL ที่ถูกส่งไปโดย GET
http://www.doesystem.com/welcome.php?name=doe&age=25

การรับข้อมูลแบบ POST

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

ตัวอย่างการส่งข้อมูลแบบ POST

Form HTML ที่ต้องการส่งข้อมูล
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
ไฟล์ PHP ที่รับข้อมูลที่ส่งมาจาก Form จากตัวอย่างข้างบน มีการ action ไปที่ไฟล์ welcome.php ฉะนั้นไฟล์ PHP ที่รับข้อมูลจะต้องชื่อไฟล์ว่า welcome.php
Welcome <?php echo $_POST["name"]; ?>.
You are <?php echo $_POST["age"]; ?> years old! </form>
ตัวอย่าง URL ที่ถูกส่งไปโดย POST
http://www.doesystem.com/welcome.php

แล้วเมื่อไหร่ควรใช้ POST เมื่อไหร่ควรใช้ GET ดีละ ???

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