关于一个PHP的奇葩问题 ---- 莫名其妙加载两次

某天突然发现账号会莫名其妙的T下线,查看日志发现出现多次登录的情况。

起初怀疑是账号多处登录导致互相T号,结果测试多个账号后,发现问题相同。

分析日志,发现登录的ip不同,会发生变化。这个时候怀疑是不是因为手机使用流量导致IP变换,造成掉线的情况。

但是将手机转为WIFI连接,问题依旧。

这个时候开始感觉问题不是那么简单,怀疑服务器被入侵挂马。

首先把主服务器重做,问题依旧。

登录服务器重做,问题依旧。

这个时候整个人都不好了,介于崩溃边缘。

好吧,打日志,分析数据。

经过无数次的测试,发现一个情况,有个页面会被调用2次,而且中间间隔刚好是1分钟。而这个页面刚好是用于登录获取数据,也就是说登录2次,造成T号掉线。

但是,奇怪的是这2次连接的客户端IP不对。第一次登录IP是正确的IP,第二次,也就是1分钟之后的IP每次都不通,一直变化。

因为登录使用的是微信公众号,之前出现过公众号跳转2次的情况,这个时候怀疑会不会又是微信那边抽风,请求一次,回调两次?

遗憾的是,打日志发现,回调是正常的。重复调用的是php页面,而跟微信跳转没有关系。

于是怀疑是不是php跳转代码header()的问题。

将header替换为js跳转代码(因为之前微信回调两次是通过修改这个解决的),问题依旧。

这个时候已经疯了。哪个大神这么牛B,服务器重装了都还能挂马!!!!

不对,感觉应该是php的问题,于是乎百度谷歌,发现还真有关于php一次请求执行2次的问题。

不过,都不是我这种情况。

突然一个关于php验证码重复刷新的问题,说的是修改了php的header,然后就对了。

于是乎我突发奇想,是不是跟php页面header有关?

抱着死马当成活马医的想法,噼里啪啦在php页面加上几个以前解决跨域访问的header

// 指定允许其他域名访问  
header('Access-Control-Allow-Origin:*');  
// 响应类型  
header('Access-Control-Allow-Methods:GET');  
// 响应头设置  
header('Access-Control-Allow-Headers:x-requested-with,content-type');  

放上去测试,KAO,居然解决了!!!

还没高兴几分钟,问题又出现了。都是假象!!!!!

原来如果重复提交相同的url,是不会重复执行的。

于是又百度谷歌。。。。

终于找到一篇文章聊聊微信内页面发Ajax请求会重复请求的问题

说的是微信那边有检测,会重复提交请求。

终于找到问题所在,解决方法很简单,做个随机字符串r,每次url遇到重复r直接忽略掉。

困扰几天的问题终于解决,确定不是被黑就好办~

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

XRayser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值