Tôi nghĩ rằng vấn đề này thường xảy ra trên một ứng dụng web. Nhưng tôi sẽ giải thích chi tiết những rắc rối của tôi.Cách tốt nhất để tránh việc gửi do làm mới trang
Tôi muốn biết làm thế nào để thoát khỏi hành vi này, ví dụ như khi tôi đã là một mã như thế này:
<?
if (isset($_POST['name'])) {
... operation on database, like to insert $_POST['name'] in a table ...
echo "Operation Done";
die();
}
?>
<form action='page.php' method='post' name="myForm">
<input type="text" maxlength="50" name="name" class="input400" />
<input type="submit" name="Submit" />
</form>
Khi tôi gửi biểu mẫu, tôi chèn các dữ liệu trên cơ sở dữ liệu, và Tôi nhận được thông báo Thao tác Hoàn tất. Hơn nữa, nếu tôi làm mới trang, dữ liệu sẽ được in lại.
Làm cách nào để tránh tình huống này? Mọi đề xuất sẽ tốt :)
Đây là những gì bạn nên làm. Thậm chí còn có một trang wiki cho mẫu này: http://en.wikipedia.org/wiki/Post/Redirect/Get –
Đây là một giải pháp tốt và dễ thực hiện bằng cách sử dụng một số Khung (như Struts2 hoặc JSF, tôi đã thực hiện nó trong quá khứ). Trong thực tế, tôi không biết sstrategy tốt nhất trên php :) – markzzz
Đơn giản, rõ ràng, thanh lịch vv =) – Rudie