บทความ

กำลังแสดงโพสต์ที่มีป้ายกำกับ php_self

การสร้างฟอร์ม และ PHP อยู่ในหน้าเดียวกัน

รูปภาพ
โดยปกติเมื่อมีการสร้างฟอร์มเพื่อเก็บข้อมูลโดยใช้ PHP มักจะมี 2 ไฟล์ คือ ไฟล์ HTML สำหรับสร้างฟอร์มเพื่อเก็บข้อมูล และ เมื่อกดปุ่มส่งข้อมูล จะไปเรียกใช้งานไฟล์ PHP เราสามารถ รวมไฟล์ทั้งสองเข้าด้วยกัน เหลือไฟล์เดียว โดยใช้หลักการดังนี้ สร้างไฟล์ PHP ที่ประกอบด้วย ฟอร์มและโค้ดของ PHP ครั้งแรกให้ตรวจสอบว่ามีการคลิกปุ่มส่ง แล้วหรือยัง โดยใช้ฟังก์ชัน isset() ถ้ามีการคลิกปุ่มแล้ว ให้ไปที่โค้ด PHP ถ้ายังไม่มี ให้ไปที่ฟอร์ม ที่ฟอร์ม Action ให้เรียกชื่อไฟล์ตัวเอง คือ $_SERVER['PHP_SELF'] การใช้ PHP_SELF มีจุดอ่อน Hacker สามารถใช้ Query String ส่ง script พ่วงเข้ามาอาศัยให้ทำงานอื่น ๆ ได้ จึงควรป้องกันไว้ก่อน โดยใช้ฟังก์ชัน htmlentities() เพื่อไม่ให้สามารถพ่วงโค้ดเข้ามาได้ ในกรณีที่ เราใช้ Query String ส่งค่าเข้ามา เช่น ส่งค่า thisid ดังนี้ http://localhost/temp/phpFormDemo.php?thisid=12345 ให้รับค่า thisid ไว้ก่อน (กรณีนี้ใช้ GET แต่สามารถส่งมาทาง POST ก็ได้) และส่งค่าจากฟอร์ม ไปที่โค้ด PHP ผ่านทาง hidden input type ตัวอย่างโค้ด ฟอร์ม และ PHP ในหน้าเดียวกัน <?php $id = $_G