做微信刮刮卡活动,有个用户刮奖次数的限制,昨天一切正常,所以就改动了一些东西,今天再打开的时候刮奖次数第一次是1,第二次是3,第三次是5,感觉就是页面刷新了两遍。检查前后台代码,发现一些bug就顺手修改了,其实不是造成这个问题的真正原因。没办法,自己写了个一个计数器,计算访问当前页面的次数,发现在微信里面从1直接跳到3,然后跳到5,其他pc浏览器一点问题木有。从后台代码,检查到前台html,断点似的,就是先清空php代码,测试html显示时是否跳过,然后在清空html代码,测试运行后台代码时,是否跳过。最后检测出。。。。,没错是因为我写了一个link但是没给href复制,导致重复刷新的。。
附:php计数器代码:
class Counter{
//$five,$four 等变量表示零的个数,放在数字前边构成6位
public function counterFunction()
{ //定义函数
$five = "00000"; //声明变量
$four = "0000";
$three = "000";
$two = "00";
$one = "0";
$counter = "C:/error/record.dat"; //存放访问数的目的文件,.dat格式
if(!file_exists($counter)) //判断文件是否存在(文件不存在)
{
$counter = fopen($counter,"w");
fputs($counter,"0"); //写入文件
fclose($counter);
}
else
{
$fp = fopen($counter,"r+");
$num = fgets($fp,"1024"); //如果文件存在则读出文件,并加 1
$num = $num + 1;
if($num print "$five"."$num";
elseif($num print "$four"."$num";
elseif($num print "$three"."$num";
elseif($num print "$two"."$num";
elseif($num print "$one"."$num";
else
print "$num";
}
$fp = fopen($counter,"w");
fputs($fp,"$num");
fclose($fp);
}
}
?>