我在PHP中构建了一个简单的访问者计数器,它将访问者的IP保存在我的数据库中。
这是我的剧本:
function view_count() {
global $bdd;
$ip = $_SERVER['REMOTE_ADDR'];
$date = date('Y-m-d');
$query = $bdd->prepare("
INSERT INTO views_stats (ip , date_visite , pages_vues, subcategory_id) VALUES (:ip , :date , 1, :subcategory_id)
ON DUPLICATE KEY UPDATE pages_vues = pages_vues + 1
");
$query->execute(array(
':ip' => $ip,
':date' => $date,
':subcategory_id' => $_GET['s']
));
}
它无法正常工作,有时它无法保存IP访问者。
我的数据库中的IP:
66.249.64.21
2a03:2880:2111:bfdc:face:b00c:
2a01:e34:ee35:2ad0:3c49:4e42:b
185.20.6.14
34.201.147.172
212.227.247.118
我不明白为什么有时候我会2a01:e34:ee35:2ad0:3c49:4e42:b
而不是ip地址。
有什么想法吗? THX
答案 0 :(得分:0)
两者都是ip地址,一个用于ipv4,第二个是ipv6,这就是为什么它不起作用你可以改变你的数据类型来解决问题。你也可以找到关于ipv4和ipv6 here的所有细节,你会得到更好的想法。