การส่งฟอร์มไปยังฐานข้อมูลและเปลี่ยนเส้นทางใน PHP

สมมติว่าเรามีฟอร์มบางรูปแบบ:

form.php<form method="POST">
  <input name="test1">
  <input name="test2">
  <input type="submit">
</form>

มาบันทึกข้อมูลจากฟอร์มนี้ลงในฐานข้อมูลกัน:

form.php<?php
  if (!empty($_POST)) {
    // บันทึกลงในฐานข้อมูล
  }
?>

อย่างไรก็ตาม มีปัญหาที่รอเราอยู่ตรงนี้: หากรีเฟรชหน้าเบราว์เซอร์ ฟอร์มจะถูกส่งและบันทึกอีกครั้ง ส่งผลให้ข้อมูลซ้ำซ้อน

เพื่อแก้ไขปัญหา หลังจากบันทึกฟอร์มแล้ว จำเป็นต้องดำเนินการเปลี่ยนเส้นทาง (redirect) ไปยังหน้าเดิม:

php<?php
  if (!empty($_POST)) {
    // บันทึกลงในฐานข้อมูล
    
    header('Location: form.php');
    die();
  }
?>
Задание 1

สร้างฟอร์มและดำเนินการบันทึกลงฐานข้อมูลหลังการส่ง แก้ไขปัญหาการบันทึกซ้ำหลังการส่ง