统计php脚本中的奇怪行为

统计php脚本中的奇怪行为,php,logging,ip,Php,Logging,Ip,我刚刚创建了一个网站,在管理面板中有一个非常重要的statsitics模块,可以识别用户是第一次访问该网站(unique)还是已经访问该网站(raw) 要识别用户是否唯一,脚本将检查ip是否相同或是否存在cookie(在同一天) 对我来说,这个脚本工作得很好(我尝试了很多浏览器,删除cookie,更改IP等等)。但是现在我刚刚看到一个用户有一个奇怪的行为,使用相同的IP,但是所有的访问都被注册为唯一的 这里是注册的记录(为了隐私,我屏蔽了ip): 这怎么可能?我该如何解决这个问题呢?您从未设置过

我刚刚创建了一个网站,在管理面板中有一个非常重要的statsitics模块,可以识别用户是第一次访问该网站(unique)还是已经访问该网站(raw

要识别用户是否唯一,脚本将检查ip是否相同或是否存在cookie(在同一天)

对我来说,这个脚本工作得很好(我尝试了很多浏览器,删除cookie,更改IP等等)。但是现在我刚刚看到一个用户有一个奇怪的行为,使用相同的IP,但是所有的访问都被注册为唯一的

这里是注册的记录(为了隐私,我屏蔽了ip):


这怎么可能?我该如何解决这个问题呢?

您从未设置过
$res
,因此
mysqli_num_rows
应该产生一个警告,并导致
false
等于
0
。因此,请求将始终是唯一的

如果正确插入ip且sql正确,则此操作应能正常工作:

$res = mysqli_query( $con, "SELECT id FROM table WHERE ( ip = '$ip' OR id = '$cookie' ) 
AND DATE_FORMAT( datetime, '%d.%m.%y' ) = DATE_FORMAT( now(), '%d.%m.%y' ) 
ORDER BY datetime DESC LIMIT 1" );

if( mysqli_num_rows( $res ) == 0 ) { $unique = 1; } else { $unique = 0; }
此外: 您是否确实将ip插入表中


您是否在phpmyadmin中手动检查了查询?这行吗?

对不起,脚本中有“$res”(我刚刚编辑了这篇文章)。是的,在我的测试中,所有的东西都能完美地工作,除了那个。。我真的不明白这怎么可能!!!如果只是一个用户,唯一的可能是他阻止了cookie,并且您的sql ip检查不起作用(因为ip显然是相同的),并且每个其他用户都通过cookie识别。您必须做的事情:检查sql表是否正确填写,并在phpMyAdminxx中测试查询以获得帮助,但我非常确定cookie和ip检查都工作正常,我只是尝试删除我的cookie,并通过ip注册为原始。哦,这是胡说八道!
2013-09-09 06:06:05 unique  112.201.***.*** Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (K...
2013-09-09 06:06:14 unique  112.201.***.*** Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (K...
2013-09-09 06:11:58 unique  112.201.***.*** Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (K...
2013-09-09 06:14:11 unique  112.201.***.*** Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (K...
2013-09-09 06:17:05 unique  112.201.***.*** Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (K...
2013-09-09 06:17:15 unique  112.201.***.*** Mozilla/5.0 (Windows NT 6.0) AppleWebKit/537.36 (K..
$res = mysqli_query( $con, "SELECT id FROM table WHERE ( ip = '$ip' OR id = '$cookie' ) 
AND DATE_FORMAT( datetime, '%d.%m.%y' ) = DATE_FORMAT( now(), '%d.%m.%y' ) 
ORDER BY datetime DESC LIMIT 1" );

if( mysqli_num_rows( $res ) == 0 ) { $unique = 1; } else { $unique = 0; }