Gửi biểu mẫu đến Cơ sở dữ liệu và chuyển hướng trong PHP
Giả sử chúng ta có một biểu mẫu:
<form method="POST">
<input name="test1">
<input name="test2">
<input type="submit">
</form>
Hãy lưu dữ liệu của biểu mẫu này vào cơ sở dữ liệu:
<?php
if (!empty($_POST)) {
// lưu vào cơ sở dữ liệu
}
?>
Tuy nhiên, ở đây có một vấn đề: nếu làm mới trang trình duyệt, biểu mẫu sẽ được gửi và lưu thêm một lần nữa, tạo ra bản sao dữ liệu.
Để giải quyết vấn đề này, sau khi lưu biểu mẫu cần thực hiện chuyển hướng đến chính trang đó:
<?php
if (!empty($_POST)) {
// lưu vào cơ sở dữ liệu
header('Location: form.php');
die();
}
?>
Tạo một biểu mẫu và triển khai việc lưu nó vào CSDL sau khi gửi. Loại bỏ việc lưu hai lần sau khi gửi.