Tui viết 1 cái nhật ký, ai cũng có thể add bài, nhưng có 1 cái là cứ vừa add xong, rồi F5 thì nó lại tự động add thêm 1 cái nữa, bác nào có cách nào chống flood ko vậy ? Tui nghe thằng bạn nói rằng cứ cho thời gian đếm là đếm lùi lại khoảng bao nhiêu giây thì cho add 1 lần, nhưng tui chưa rõ là code nó thế nào, vì lần đầu viết nên cần học hỏi nhiều, mong các bác giúp đỡ ? ::(
Put time lúc nó submit để insert vào database vào session sau đó nếu nó post tiếp thì lấy time lúc nó post - time trong session nếu > ??? thì mới cho nó insert.
Trùi, bác nói cụ thể chút cho em hiểu với chứ, hoặc là có 1 đoạn code tương tự liên kết với CSDL access và viết bằng ASP (cái của em viết bằng ASP) thì càng tốt ? Thanks bác nhìu !
Hì hì, post bên diễn đàn tin học .net (vninformatics.com) rồi lại qua đây post à :P Cách thường làm là dùng 1 trang trung gian, trang đó có vài dòng thông báo "Bài đang gửi , vui lòng chờ ít phút hoặc nhấn vào đây nếu không muốn chờ", còn gọi là trang redirect. Trang này sẽ nhận nhiệm vụ post bài và do thời gian xuất hiện chỉ vài s nên trừ phi cố tình spam còn không thì cũng không bị lỗi post double bài
Sorry không biết asp nhưng quy trình của nó làm như sau: khi user post bài lên phía server sẽ check 1 biến trong session. nếu biến này = null thì cho post và tạo biến này bằng thời gian hiện tại rồi đẩy vào session; nếu != null thì check nếu time hiện tại - time trong biến < 5 phút thì hiện thông báo không được post liên tục 2 bài trong phút nếu time hiện tại - time trong biến > 5 thì cho post và update lại biến này. @myshinichi Lúc đó đang vội post vì đến giờ cơm
He he, tại ko ai trả lời nên phải qua đây post 1 phát nữa ! Mà bác nói là cái trang trung gian nó chờ đợi khoảng vài giây <~~ cái này tui chưa từng biết làm, , bác có source nào tương tự như vậy giúp tui thì tốt quá !
Khi user submit form cho 1 trang khác thì ở trang nhận request cứ F5 là nó insert thôi. Còn trang trung gian như kiểu các forum (ex:gvn) là do chúng nó muốn hiện thông báo post bài thành công mà không hiện chung vào với trang submit (do trang này hiện bài không thôi đã dài lắm rồi) do là thông báo nên nó phải chờ 1 vài giây mới redirect trở lại trang cũ (thế nên có dòng click vào đây nếu không muốn đợi lâu). Nếu bạn chưa biết dùng session thì còn 1 giải pháp đơn giản hơn: - Trang a submit form lên trang b. - Trang b nhận thông tin từ form và insert vào database... - Trang b redirect sang trang c - Trang c hiện thông báo thành công. Kiểu này thì thằng nào cố tình nó vẫn post liên tục được nhưng dùng tạm cũng không sao. GL
Hix, tui làm đc rùi, cái kiểu redirect đó, nhưng mà tui bảo thằng bạn thử flood xem thế nào thì ôi thôi, hơn 500 bảng nó insert vào, xóa đến chết luôn ::(