[問題] 如何避免網頁一直被用戶 F5

作者: elfpokemon (精靈寶可夢)   2016-08-16 14:36:55
標題下的有點爛,
簡單說假設我有一個檔叫 sentMail.php,
公用是打開這個網頁,
會自動寄一封信給用戶。
如果用戶用某種方法一直訪問我這個頁面,
就會一直寄送信件出去,
浪費我的頻寬和資源。
請問有什麼方法可以阻止這樣的事發生?
其實解法是有想到,
像是利用 session 去紀錄時間比對,
太近的話就導到其它頁面。
請問有沒有更好的做法?
作者: ian90911 (xopowo)   2016-08-16 15:55:00
所以你還是要給一般人用 但要控制頻率
作者: imhaha (嘿嘿)   2016-08-16 16:27:00
寫時間排除 不然還有什麼方法XD?
作者: pm2001 (做個盾牌眼球兵吧)   2016-08-16 16:39:00
你不覺得你這樣設計 從根本上就有問題嗎?
作者: s89227 (Kei)   2016-08-16 16:40:00
你要想的是為什麼用戶會一直F5這個網頁?
作者: xdraculax (首席怪叔叔)   2016-08-16 17:50:00
前一頁加上驗證碼,寄信頁用ajax或寄完轉址
作者: aaa60600 (cookie)   2016-08-16 20:08:00
event.keycode. 限制F5按鈕?
作者: Kenqr (function(){})()   2016-08-17 00:52:00
在資料庫留紀錄
作者: devil115789 (味噌湯好喝)   2016-08-17 09:57:00
檔refresh不實際 可以F5 Ctrl+R 還有瀏覽器原生還有最不可能檔就是他一直重新造訪這個頁面所以發送信件通常是用上一次寄信的時間去檔時間間隔用session也不是很好 因為開新的瀏覽器就還是可以發比較好的做法還是去確認資料庫 避免不必要的資源消耗
作者: Canboo (啃布先生)   2016-08-17 10:23:00
你功能應該收在class或function內,在必要時呼叫而不是直接用一個PAGE直接做這個功能然後也停在這PAGE檢討整個資訊流先,才是最根本的處理方式
作者: ssccg (23)   2016-08-17 11:36:00
首先要先看是有驗證過身份的使用者,還是一般人?以驗證過的使用者來說,就是server端的流程問題,要怎樣的條件會去執行那個功能,一定不能是單純連到某頁面
作者: shadowjohn (轉角遇到愛)   2016-08-17 13:07:00
通常發mail還是簡訊,都建議收到queue用其他排程去作這件事不要讓使用者畫面卡機或亂發,有個queue至少過濾方便也利記錄

Links booklink

Contact Us: admin [ a t ] ucptt.com