[问题] 如何避免网页一直被用户 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