การจัดการฟอร์ม PHP
- หน้าก่อนหน้า ซับโลคัลแฟร์ PHP
- หน้าต่อไป การตรวจสอบฟอร์ม PHP
ตัวแปรสูง global $_GET และ $_POST ของ PHP ใช้เพื่อรับรู้ข้อมูล form-data。
PHP - ฟอร์ม HTML ธรรมดา
ตัวอย่างข้างต้นแสดงฟอร์ม HTML ธรรมดาที่มีสองฟิลด์อินพุทและปุ่มส่งสมญาติ:
ตัวอย่าง
<html> <body> <form action="welcome.php" method="post"> ชื่อ: <input type="text" name="name"><br> อีเมล: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
เมื่อผู้ใช้กรอกฟอร์มและกดปุ่มส่ง ข้อมูลฟอร์มจะถูกส่งไปยังไฟล์ PHP ที่มีชื่อ "welcome.php" เพื่อการประมวลผล ข้อมูลฟอร์มถูกส่งด้วยวิธี HTTP POST
ถ้าคุณต้องการแสดงข้อมูลที่ถูกส่งมา คุณสามารถแสดงทุกตัวแปรโดยที่แสดง (echo) ตัวแปรทั้งหมด ได้ "welcome.php" มีลักษณะเช่นนี้:
<html> <body> ยินดีต้อนรับ <?php echo $_POST["name"]; ?><br> ที่อยู่อีเมลของคุณคือ: <?php echo $_POST["email"]; ?> </body> </html>
การแสดงผล:
ยินดีต้อนรับ Bill ที่อยู่อีเมลของคุณคือ Bill.Gates@example.com
คุณยังสามารถได้ผลลัพธ์เดียวกันด้วยวิธี HTTP GET:
ตัวอย่าง
<html> <body> <form action="welcome_get.php" method="get"> ชื่อ: <input type="text" name="name"><br> อีเมล: <input type="text" name="email"><br> <input type="submit"> </form> </body> </html>
"welcome_get.php" มีลักษณะเช่นนี้:
<html> <body> ยินดีต้อนรับ <?php echo $_GET["name"]; ?><br> ที่อยู่อีเมลของคุณคือ: <?php echo $_GET["email"]; ?> </body> </html>
รหัสที่แสดงด้านบนเรียบร้อยง่าย แต่เนื้อหาที่สำคัญถูกละเลย คุณต้องตรวจสอบข้อมูลฟอร์มเพื่อป้องกันให้มีช่องโหว่ในสคริปต์
สัญญาณเตือน:ในการจัดการฟอร์ม PHP คุณต้องให้ความสำคัญต่อความปลอดภัย!
หน้านี้ไม่มีการรวมรหัสการตรวจสอบฟอร์ม มันเพียงแสดงให้เห็นว่าจะส่งและรับข้อมูลฟอร์ม
แต่ในบทบาทหลังจะเราจะเล่าให้คุณทราบวิธีที่จะเพิ่มความปลอดภัยของฟอร์ม PHP! การตรวจสอบความปลอดภัยของฟอร์มอย่างเหมาะสมเป็นสิ่งที่สำคัญมากในการป้องกันการโจมตีโดยแฮ็คเกอร์และสแปม
GET vs. POST
GET และ POST ตั้งค่าตัวแปรแบบแถว (เช่น,array( key => value, key2 => value2, key3 => value3, ...) ซึ่งมีค่าเป็นคู่กัน ที่ใช้ชื่อโปรแกรมฟอร์ม และมีค่าเป็นข้อมูลที่มาจากการกรอกข้อมูลของผู้ใช้
GET และ POST ถือเป็น $_GET และ $_POST มันเป็นตัวแปรทั่วไป มันหมายความว่าการเข้าถึงของพวกมันไม่ต้องที่จะพิจารณาขอบเขต ไม่จำเป็นต้องมีรหัสเพิ่มเติม คุณสามารถเข้าถึงพวกมันได้จากฟังก์ชัน หรือคลาส หรือไฟล์ใดๆ
$_GET คือตัวแปรภายในตารางที่ส่งมาด้วยตัวแปรใน URL สู่สคริปต์ปัจจุบัน
$_POST คือตัวแปรภายในตารางที่ส่งมาด้วย HTTP POST สู่สคริปต์ปัจจุบัน
เมื่อใดที่จะใช้ GET?
ข้อมูลที่ส่งไปด้วยวิธี GETเห็นได้โดยทุกคน(ชื่อและค่าของตัวแปรทั้งหมดจะแสดงใน URL)。GET มีข้อจำกัดต่อจำนวนข้อมูลที่ส่งได้ จำกัดในระดับประมาณ 2000 ตัวอักษร อย่างไรก็ตาม เพราะตัวแปรแสดงใน URL จึงง่ายที่จะเพิ่มหน้าเข้าหลังเบิกหน้าตาเล็กด้วย
GET สามารถใช้ส่งข้อมูลที่ไม่เป็นความลับ
หมายเหตุ:ไม่สามารถใช้ GET ส่งรหัสผ่านหรือข้อมูลที่เป็นความลับอย่างไม่เหมาะสม!
เมื่อใดที่จะใช้ POST?
ข้อมูลที่ส่งไปด้วยวิธี POSTไม่เห็นได้โดยผู้อื่น(ชื่อและค่าทั้งหมดจะถูกใส่ลงในร่างของ HTTP การขอคำสั่ง),และมีข้อจำกัดต่อจำนวนข้อมูลที่ส่งได้ไม่จำกัด。
นอกจากนี้ POST ยังสนับสนุนความสามารถระดับสูง เช่น multi-part binary input ขณะที่ของมันเสียงไปยังเซิร์ฟเวอร์
อย่างไรก็ตาม ตั้งแต่ตัวแปรไม่แสดงใน URL จึงไม่สามารถเพิ่มหน้านี้เข้าหลังเบิกหน้าตาเล็กได้
คำเตือน:นักพัฒนาชื่นชอบการใช้ POST ส่งข้อมูลฟอร์ม
ตอนนี้เราจะดูว่าจะกระทำอย่างไรเพื่อจัดการฟอร์ม PHP อย่างปลอดภัย!
- หน้าก่อนหน้า ซับโลคัลแฟร์ PHP
- หน้าต่อไป การตรวจสอบฟอร์ม PHP