iT邦幫忙

0

php javascript防止重複貼文,能怎麼做比較好?

有時後,按太快,網路太快。
一貼文多按了幾下,就會一文兩貼,一文多貼!
怎樣防止溢貼,會比較好?

方案 A .javascript :1.設定按鍵 button每五秒才作用依次.
該怎麼寫?..
2.只要資料沒動變,按了之後,也不會送出:要把按紐變無效.是用onclick=''就好?
這該怎麼寫?

方案 B . php : 把收到的資料,跟上次資料比對。如依樣就不處理。

方案 C . js跟 php 兩者互相溝通 。
在cookie js設1未送出,收到後PHP設0以收到.清空輸入區.
或者輸入區有變動js再送出.

或者有其他方法?

php有可以檢查重複收到資料的函數?或方法?

表單跟php是不同頁面..表單按了這一頁不會動,
php的頁面才會動..

還有就是 php跟 javascript 溝通..
除了cookie 還能是哪裡?
php處理完資料,有還有其它方法.回傳給javascript訊息嗎?
把它們都指向同一個檔案txt 互通資料,可行嗎?

6
老鷹(eagle)
iT邦高手 1 級 ‧ 2014-12-30 11:27:00

gituest提到:
方案 B . php : 把收到的資料,跟上次資料比對。如依樣就不處理。

老鷹有個想法,
第一把你的收到的資料串再一起使用md5加密[另開一個欄位儲存,當驗證],
當您傳過去時把資料串一下再用md5加密,
對應兩邊加密是否一樣,如果一樣不處理,如果不一樣則update[驗證碼也update].

gituest提到:
php處理完資料,有還有其它方法.回傳給javascript訊息嗎?

可以!老鷹是使用Jquery .post,這個技術叫做AJAX!

參考資料好像可以拿來進補………XD

0
炎之虛空
iT邦高手 3 級 ‧ 2014-12-30 16:57:58

比較簡單方式
就寫一個JQuery判定表單是否連續按兩次OR多次發送

2
wiseguy
iT邦超人 1 級 ‧ 2014-12-30 17:53:33

依據我的經驗,Web UI 的確會因為按太快而 submit 兩次,但是還有一種,是 IE 在 submit 後等太久,自己又發一次,不是 user 按的。那麼這種問題在介面上防,是避免不掉的。所以還是要從後端去防。
最簡單的就是"張貼人帳號"跟"張貼時間"做一個 unique key,就可以防止誤按。key的張貼時間精確到分,在一分鐘內重覆 submit 的都會 insert 失敗。這當然也要配合張貼政策,預估同一個人在一分鐘內不可能會張貼一次以上 (除非他是一直發剪貼來的廢話),那設定這個 unique key 就很好用了。

gituest iT邦新手 5 級 ‧ 2014-12-30 21:19:36 檢舉

好主意:用時間比對設時限。
按下去時,把按鈕隱藏或用前面LAYER遮斷。

2
何必問
iT邦好手 1 級 ‧ 2014-12-30 21:17:14
  1. post/submit時把按鈕disable
  2. 網頁reload利用時間戳記來防呆跳脫
  3. 資料寫入則是比對資料是否相同md5sum是好方法也避免網路機器人貼文

我要發表回答

立即登入回答