สามารถใช้เซสชัน PHP เพื่อป้องกันการแทรกหลายรายการเมื่อส่งแบบฟอร์ม เซสชัน PHP ตั้งค่าตัวแปรเซสชัน (เช่น $_SESSION['posttimer']) ที่ตั้งค่าการประทับเวลาปัจจุบันบน POST ก่อนประมวลผลแบบฟอร์มใน PHP ตัวแปร $_SESSION['posttimer'] จะถูกตรวจสอบการมีอยู่ของตัวแปรนั้น และตรวจสอบความแตกต่างของการประทับเวลาเฉพาะ (เช่น 2 หรือ 3 วินาที) วิธีนี้จะช่วยให้ระบุและนำส่วนแทรกที่ซ้ำกันจริงออกได้
รูปแบบง่าย -
// form.html <form action="my_session_file.php" method="post"> <input type="text" name="bar" /> <input type="submit" value="Save"> </form>
การอ้างอิงถึง 'my_session_file.php' ด้านบนจะมีโค้ดด้านล่าง -
ตัวอย่าง
if (isset($_POST) && !empty($_POST)) { if (isset($_SESSION['posttimer'])) { if ( (time() - $_SESSION['posttimer']) <= 2) { // less then 2 seconds since last post } else { // more than 2 seconds since last post } } $_SESSION['posttimer'] = time(); }
ผลลัพธ์
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
The unique form submitted data.
ตัวแปรเซสชัน posttimer ถูกตั้งค่า และเมื่อมีความแตกต่างของเวลา 2 วินาทีหรือน้อยกว่าก่อนการดำเนินการ POST ล่าสุด จะสามารถลบออกได้ มิฉะนั้นจะถูกเก็บไว้ ฟังก์ชันเวลาถูกเรียกและค่าถูกกำหนดให้กับตัวแปรเซสชันหลังจับเวลา