简单访问者的IP错误反对PHP

时间:2017-04-26 10:30:35

标签: php sql ip

我在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

1 个答案:

答案 0 :(得分:0)

两者都是ip地址,一个用于ipv4,第二个是ipv6,这就是为什么它不起作用你可以改变你的数据类型来解决问题。你也可以找到关于ipv4和ipv6 here的所有细节,你会得到更好的想法。