主题:寻求解决思路~~php+mysql的防灌水计数器
目前是这样编写的:
1.取访问者的ip和数据库里的对比,如果有,执行2;没有,执行3.
2.计算现在和最近一次访问的时间差,如果大于防灌水时间,执行3;小于,执行4。
3.将ip,时间写入数据库(即记录数+1).
4.读取访问次数,显示在网页上!
---------------------------
其中第2步的数据库操作我是这么写的:
SELECT TIME_TO_SEC( NOW( ) ) - TIME_TO_SEC( time_at ) FROM `gbook` WHERE ip_at = '$ip 'AND user_name = 'user1'ORDER BY `TIME_TO_SEC( NOW( ) ) - TIME_TO_SEC( time_at )` ASC
----------------
也就是计算现在时间和最近一次访问的相差秒数。
问题:他只把时间的小时+分+秒 进行计算。不管天数,假如你昨天下午访问的,今天上午访问的话,那么减出来的值就是负数。而设置的防灌水时间是正数,所以数据库不记录.............我现在需要他记录。但不知道怎么操作了。
望各位高人给点思路~~~
1.取访问者的ip和数据库里的对比,如果有,执行2;没有,执行3.
2.计算现在和最近一次访问的时间差,如果大于防灌水时间,执行3;小于,执行4。
3.将ip,时间写入数据库(即记录数+1).
4.读取访问次数,显示在网页上!
---------------------------
其中第2步的数据库操作我是这么写的:
SELECT TIME_TO_SEC( NOW( ) ) - TIME_TO_SEC( time_at ) FROM `gbook` WHERE ip_at = '$ip 'AND user_name = 'user1'ORDER BY `TIME_TO_SEC( NOW( ) ) - TIME_TO_SEC( time_at )` ASC
----------------
也就是计算现在时间和最近一次访问的相差秒数。
问题:他只把时间的小时+分+秒 进行计算。不管天数,假如你昨天下午访问的,今天上午访问的话,那么减出来的值就是负数。而设置的防灌水时间是正数,所以数据库不记录.............我现在需要他记录。但不知道怎么操作了。
望各位高人给点思路~~~