问题是这样的,发一份注册激活邮件到用户邮箱,点击邮件是的激活链接,结果,控制器被连续执行二次,把链接手动复制到地址栏回车,就正常执行一次,目前只发现火狐浏览器有这个问题,其他浏览器经过初步测试都是正常的,好奇怪呀:
/**
* 邮箱激活
*/
public function active_user(){
file_put_contents('active.txt', '测试邮箱', FILE_APPEND);
die;
}
结果active.txt里面出现:测试邮箱测试邮箱,即被连续执行了二次,求解释???
开发用的是CI框架
file_put_contents('active.txt', '测试邮箱'.date('Y-m-d H:i:s').rand()."\r\n", FILE_APPEND);
先把active.txt数据清空了;
加上时间、随机数、换行符看看是不是真的有两条数据;
既然是特定浏览器的问题,建议你用fiddler这个程序调试下,它可以监控你的浏览器和服务器的通讯。
用session 记录所属用户发送的次数和时间,执行次数超过N次不执行就可以了。这样也可以防止强刷。