10/10/2018, 09:28

Vấn đề này cần sự giúp đỡ của mọi người (PHP)

Chuyện là thế này

em tạo 1 trang để thêm tin tức news.php, submit thì đến news.php?add=1, và hiện chữ thành công

Nhưng khi e nhấn F5 hoặc Refesh thì 1 tin nữa sẽ được tiếp tục đưa lên CSDL

làm mấy lần là thêm mấy tin àd

có cách nào ngăn cản F5 hoặc refresh để ko cho 1 bảng dữ liệu mới thêm vào CSDL ko mấy bác

Em ko thích phải cập nhật rồi chuyển đến 1 page khác đăng lên tin thành công

Mấy pro giúp em cái dụ này với
catlovevn viết 11:31 ngày 10/10/2018
dùng ajax đi bạn

hoặc là check sự tồn tại trùng lặp là xong
dentinhdobac viết 11:35 ngày 10/10/2018
ajax thì mình ko dùng

còn check sự dùng lặp thì làm cho web chạy chậm mất

còn cách nào nữa ko mấy pron giúp mình đi
herofit viết 11:40 ngày 10/10/2018
Được gửi bởi dentinhdobac
ajax thì mình ko dùng

còn check sự dùng lặp thì làm cho web chạy chậm mất

còn cách nào nữa ko mấy pron giúp mình đi
cái này bạn thêm vào &action=insert

rùi trong chỗ sử lý submit kiểm tra cả điều kiện submit và $_GET['action'] nếu Ok thì thực hiện insert và khi xong phải redirect về trang tiếp tục nhập hay về trang view để loại bỏ sự kiện submit form. Nên khi bạn refesh không bị nữa.

nếu bạn không thích thêm &action=insert thì không sao miễn bạn redirect về trang nào đó sau khi sử lý xong submit là đuợc(thậm chí về chính trang đó no vấn đề)

have fun!
dinhanhency viết 11:34 ngày 10/10/2018
Được gửi bởi dentinhdobac
Chuyện là thế này

em tạo 1 trang để thêm tin tức news.php, submit thì đến news.php?add=1, và hiện chữ thành công

Nhưng khi e nhấn F5 hoặc Refesh thì 1 tin nữa sẽ được tiếp tục đưa lên CSDL

làm mấy lần là thêm mấy tin àd

có cách nào ngăn cản F5 hoặc refresh để ko cho 1 bảng dữ liệu mới thêm vào CSDL ko mấy bác

Em ko thích phải cập nhật rồi chuyển đến 1 page khác đăng lên tin thành công

Mấy pro giúp em cái dụ này với
Sau khi Submit thì xử lý Insert và nếu thành công thì Redirect sang mark là news.php?add=1 mark này show dữ liệu. Thì F5 cũng chẳng Insert thêm vào CSDL được.
suutamcongnghe viết 11:43 ngày 10/10/2018
Thay vì redirect sang trang khác thì redirect về chính trang đó luôn. Khi redirect rồi thì bạn F5 100 lần cũng không sao
dentinhdobac viết 11:30 ngày 10/10/2018
redirect => mình chưa nghe cái này bạn biết chỉ mình rõ tí đi

hay đơn thuần là nó tự chuyển trang Header("Location: $x"); => vậy à
BadLuck viết 11:38 ngày 10/10/2018
header("Location : http://yourhostname/news.php"). That 's it.
Good luck!
dentinhdobac viết 11:38 ngày 10/10/2018
sẵn đây cho mình hỏi luôn

ajax ai có nguồn mở cho mình với (code để về ngâm cứu)
Biore viết 11:38 ngày 10/10/2018
trong form nhập liệu bạn thêm trường rand sau:
PHP Code:
<?php
Tạo ID cho phiên nhập liệu
$_SESION
***91;'mywork'***93; = uniqid();
?>
<input type=hidden name=rand value="<?=$_SESION***91;'mywork''?>">
ở trang xử lý insert bro thêm phần này:
PHP Code:
// Kiễm tra dữ liệu gởi tới có phải có đúng phiên làm việc trên không
if($_SESION***91;'mywork'***93; == $_POST***91;'rand'***93; && $_POST***91;'rand'***93; != "") {
 ... 
phần xữ lí insert

// Sau khi hoàn tất thì hủy phiên làm việc này, nếu nhấn f5 thì phiên làm việc ko trùng nhau nữa nên sẽ không đáp ứng yêu cầu
unset($_SESSION***91;'mywork'***93;);

Nếu dùng cách này để viết code thì bảo mật rất tốt và chống spam.
Lưu ý: $_SESION thay bằng $_SESSION nhé (do ko quen dùng telex)
Bài liên quan
0