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

看板Web_Design作者 (精靈寶可夢)時間9年前 (2016/08/16 14:36), 9年前編輯推噓5(5017)
留言22則, 11人參與, 最新討論串1/1
標題下的有點爛, 簡單說假設我有一個檔叫 sentMail.php, 公用是打開這個網頁, 會自動寄一封信給用戶。 如果用戶用某種方法一直訪問我這個頁面, 就會一直寄送信件出去, 浪費我的頻寬和資源。 請問有什麼方法可以阻止這樣的事發生? 其實解法是有想到, 像是利用 session 去紀錄時間比對, 太近的話就導到其它頁面。 請問有沒有更好的做法? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.116.154.128 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1471329418.A.B23.html

08/16 15:55, , 1F
所以你還是要給一般人用 但要控制頻率
08/16 15:55, 1F

08/16 16:27, , 2F
寫時間排除 不然還有什麼方法XD?
08/16 16:27, 2F

08/16 16:39, , 3F
你不覺得你這樣設計 從根本上就有問題嗎?
08/16 16:39, 3F

08/16 16:40, , 4F
你要想的是為什麼用戶會一直F5這個網頁?
08/16 16:40, 4F

08/16 17:50, , 5F
前一頁加上驗證碼,寄信頁用ajax或寄完轉址
08/16 17:50, 5F

08/16 20:08, , 6F
event.keycode. 限制F5按鈕?
08/16 20:08, 6F

08/17 00:52, , 7F
在資料庫留紀錄
08/17 00:52, 7F

08/17 09:57, , 8F
檔refresh不實際 可以F5 Ctrl+R 還有瀏覽器原生
08/17 09:57, 8F

08/17 09:58, , 9F
還有最不可能檔就是他一直重新造訪這個頁面
08/17 09:58, 9F

08/17 09:58, , 10F
所以發送信件通常是用上一次寄信的時間去檔時間間隔
08/17 09:58, 10F

08/17 09:59, , 11F
用session也不是很好 因為開新的瀏覽器就還是可以發
08/17 09:59, 11F

08/17 09:59, , 12F
比較好的做法還是去確認資料庫 避免不必要的資源消耗
08/17 09:59, 12F

08/17 10:23, , 13F
你功能應該收在class或function內,在必要時呼叫
08/17 10:23, 13F

08/17 10:23, , 14F
而不是直接用一個PAGE直接做這個功能然後也停在這PAGE
08/17 10:23, 14F

08/17 10:24, , 15F
檢討整個資訊流先,才是最根本的處理方式
08/17 10:24, 15F
好,感謝各位大大的熱心回覆。 我會再想想怎麼處理比較好,再次感謝 ※ 編輯: elfpokemon (122.116.154.128), 08/17/2016 11:33:02

08/17 11:36, , 16F
首先要先看是有驗證過身份的使用者,還是一般人?
08/17 11:36, 16F

08/17 11:38, , 17F
以驗證過的使用者來說,就是server端的流程問題,要怎樣的
08/17 11:38, 17F

08/17 11:39, , 18F
條件會去執行那個功能,一定不能是單純連到某頁面
08/17 11:39, 18F

08/17 13:07, , 19F
通常發mail還是簡訊,都建議收到queue
08/17 13:07, 19F

08/17 13:07, , 20F
用其他排程去作這件事
08/17 13:07, 20F

08/17 13:08, , 21F
不要讓使用者畫面卡機或亂發,有個queue至少過濾方便
08/17 13:08, 21F

08/17 13:08, , 22F
也利記錄
08/17 13:08, 22F
文章代碼(AID): #1NihIAiZ (Web_Design)
文章代碼(AID): #1NihIAiZ (Web_Design)