作者elfpokemon (精灵宝可梦)
看板Web_Design
标题[问题] 如何避免网页一直被用户 F5
时间Tue Aug 16 14:36:55 2016
标题下的有点烂,
简单说假设我有一个档叫 sentMail.php,
公用是打开这个网页,
会自动寄一封信给用户。
如果用户用某种方法一直访问我这个页面,
就会一直寄送信件出去,
浪费我的频宽和资源。
请问有什麽方法可以阻止这样的事发生?
其实解法是有想到,
像是利用 session 去纪录时间比对,
太近的话就导到其它页面。
请问有没有更好的做法?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 122.116.154.128
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Web_Design/M.1471329418.A.B23.html
1F:推 ian90911: 所以你还是要给一般人用 但要控制频率 08/16 15:55
2F:→ imhaha: 写时间排除 不然还有什麽方法XD? 08/16 16:27
3F:推 pm2001: 你不觉得你这样设计 从根本上就有问题吗? 08/16 16:39
4F:推 s89227: 你要想的是为什麽用户会一直F5这个网页? 08/16 16:40
5F:→ xdraculax: 前一页加上验证码,寄信页用ajax或寄完转址 08/16 17:50
6F:→ aaa60600: event.keycode. 限制F5按钮? 08/16 20:08
7F:→ Kenqr: 在资料库留纪录 08/17 00:52
8F:推 devil115789: 档refresh不实际 可以F5 Ctrl+R 还有浏览器原生 08/17 09:57
9F:→ devil115789: 还有最不可能档就是他一直重新造访这个页面 08/17 09:58
10F:→ devil115789: 所以发送信件通常是用上一次寄信的时间去档时间间隔 08/17 09:58
11F:→ devil115789: 用session也不是很好 因为开新的浏览器就还是可以发 08/17 09:59
12F:→ devil115789: 比较好的做法还是去确认资料库 避免不必要的资源消耗 08/17 09:59
13F:→ Canboo: 你功能应该收在class或function内,在必要时呼叫 08/17 10:23
14F:→ Canboo: 而不是直接用一个PAGE直接做这个功能然後也停在这PAGE 08/17 10:23
15F:→ Canboo: 检讨整个资讯流先,才是最根本的处理方式 08/17 10:24
好,感谢各位大大的热心回覆。
我会再想想怎麽处理比较好,再次感谢
※ 编辑: elfpokemon (122.116.154.128), 08/17/2016 11:33:02
16F:→ ssccg: 首先要先看是有验证过身份的使用者,还是一般人? 08/17 11:36
17F:→ ssccg: 以验证过的使用者来说,就是server端的流程问题,要怎样的 08/17 11:38
18F:→ ssccg: 条件会去执行那个功能,一定不能是单纯连到某页面 08/17 11:39
19F:推 shadowjohn: 通常发mail还是简讯,都建议收到queue 08/17 13:07
20F:→ shadowjohn: 用其他排程去作这件事 08/17 13:07
21F:→ shadowjohn: 不要让使用者画面卡机或乱发,有个queue至少过滤方便 08/17 13:08
22F:→ shadowjohn: 也利记录 08/17 13:08