10/10/2018, 10:38
[help] re submit khi bấm nút back!
Em đang làm một cái guestbook, cái mà lúc ngùo7i ta điền vào vá nhấn submit hay reload thì có cái thông báo nói là phải gửi ại hết mấy thông tin............ làm đi làm lại thì có thêm 1 bài y hệt trong data!
Em thấy cái VBB mình gửi bài rồi bấm back, reload, nó đâu có hiện ra như vậy!? Làm cách nào vậy mọi ngùo7i!
Làm ơn giúp em với, thank!
Em thấy cái VBB mình gửi bài rồi bấm back, reload, nó đâu có hiện ra như vậy!? Làm cách nào vậy mọi ngùo7i!
Làm ơn giúp em với, thank!
Bài liên quan
1. khống trế bằng primary key cho data do, khi no save vao roi ma no refresh lại thì lúc đó nó bị duplicate key, thì nó sẽ ko lưu thêm vào được lần nữa.
2. khi save xong cho nó load lại page bằng redirec lại cái page đó luôn như vậy nó sẽ không còn lưu lại sự kiện submit
tham khảo vậy nhé....
@vnntech.com cach đó cũng ộn tôi làm cái đăng ký theo cách đó thấy chạy ộn.
Thứ hai, rất khó để tìm một primary key cho phù hợp. Vi dụ bảng comment cho blog đi, bạn sẽ sử dụng field nào làm key?
Với $_POST, khi back lại, trình duyệt sẽ hiển thị hộp thoại yêu cầu xác nhận việc post lại data mà người dùng ít ai chịu đọc (có thể vì lười hoặc đọc cũng không hiểu) nên cứ OK cho xong. Vậy là $_POST vẫn có tác dụng.
Em giải quyết vấn đề suy nghĩ hết cả nagỳ trời, tạm thời thì hơi ổn ổn rồi! này bằng cách:
Đặt code xử lý vào ngay cái trang có cái form
1. Ở đaọn code chèn vào cSDL sẽ check 1 biến sesion A và biến $_POST B có bằng nhau hay không mới chèn(2 biến này ở ngay bước sau)
2. Ngay khi load trang lấy ngay biến thời gian, đặt thời gian đó cho 1 biến session A và 1 input type hidden B
Trường hợp người dùng bấn nút Submit, tất nhiên ở giai đoạn 1 biến sesion A đã được đặt giá trị, và biến $_POST['B'] củng vậy, 2 thằng này nó bằng nhau! Sau khi SUbmit biến sesion A được đặt giá trị ngay lập tức, còn biến $_POST['B'] chỉ được đặt giá trị khi tiếp tục nhấn Sumit.
Nếu mà người dùng reload hay bấm back, cả cái mãng POST được gửi lai6 là mảng củ, sẽ không thực hiện được vụ isnert!
if($_POST***91;'time'***93;==$_SESSION***91;'time'***93;) {
//SQl Query
}
$now = time();
$_SESSION***91;'time'***93; = $now;
//Html//
echo '
<form action="#" method="pots">
<input type="hidden" name="time" vaule="'.$now.'" />
</form>';