我制作了这个脚本,在mysql数据库中添加了有关谁访问过我的网站的信息.
session_start() if(!isset($_SESSION['log'])) { $ip=$_SERVER['REMOTE_ADDR']; $date=date("Y-m-d H:i:s"); $browser=$_SERVER['HTTP_USER_AGENT']; $browser=mysql_real_escape_string($browser); if(isset($_SESSION['nickname'])) { $user=$_SESSION['nickname']; } else { $user="unknownABCD1234"; } $insert=mysql_query("INSERT INTO views (ip, user, date, browser) VALUES ('$ip', '$user', '$date', '$browser')", $mydb); $_SESSION['log']='logged'; $_SESSION['iplog']=$ip; $_SESSION['datelog']=$date; }
问题是它多次为每个用户添加引用(但有时不是,有时候).例如,我在我的数据库信息中找到如下:
ID: 1 IP : 95.108.244.252 USER : unknownABCD1234 DATE : 2010-08-07 01:16:00 BROWSER : Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots) ID : 2 IP : 95.108.244.252 USER : unknownABCD1234 DATE : 2010-08-07 01:16:04 BROWSER : Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)
那是不可能的吗?我确定会议期间超过4秒:)会发生什么?
僵尸程序正在丢弃会话信息并忽略您的cookie.
这意味着它会在您的日志中多次显示.是的,它确实快速访问您的网站而没有会话信息,因此您不会将其过滤掉.
您最好的选择是为机器人或IP提供某种重复过滤器,以这种方式快速重复.您也可以尝试将显式忽略添加到导致脚本出现此问题的少数bot用户代理中.当你有10或15时,你将处理大多数问题UA.