PHP - Мой счетчик - Проблемы - PullRequest
2 голосов
/ 13 апреля 2011

Я сделал свой собственный счетчик для подсчета людей, которые подключаются на моем сайте. Это код:

$date=date("Y-m-d H:i:s");
$ip=$_SERVER['REMOTE_ADDR'];
$query=mysql_query("SELECT date, id FROM views WHERE ip='$ip' ORDER BY date DESC",$mydb);

if(mysql_num_rows($query)!=0){
    $id_ip=mysql_result($query,0,'id');
    $limit_time=strtotime("-20 minutes");
    $current_time=strtotime(mysql_result($query,0,'date'));
} else {
    $limit_time=$date;
    $current_time=0;
}

if(isset($_SESSION['nickname'])) {
    $user=$_SESSION['nickname'];
} else {
    $user="gtw@visitor";
}

if($current_time<$limit_time) {         
    $insert=mysql_query("INSERT INTO views (ip, user, date) VALUES ('$ip', '$user', '$date')", $mydb);
} else {
    if($user!="gtw@visitor") {
        $update=mysql_query("UPDATE views SET date='$date', user='$user' WHERE id='$id_ip'",$mydb);
    } else {
        $update=mysql_query("UPDATE views SET date='$date' WHERE id='$id_ip'",$mydb);
    }
}

Проблема заключается в следующем: если я подключаюсь к веб-сайту с тем же IP-адресом (например, с одним и тем же компьютером) с 2-мя браузерами, которые я буду регистрировать с 2-мя разными именами пользователей, он будет считаться одним посетителем Любое предложение, чтобы улучшить эту ситуацию?

Может быть, добавить для каждого соединения HASH, сгенерированный из BROWSER AGENT? Незнайка ...

Ответы [ 3 ]

1 голос
/ 13 апреля 2011

Как вы заметили, многие клиенты могут использовать один и тот же общедоступный IP-адрес.

Google решает эту проблему с помощью файла cookie.Это не надежно, но это лучшее, что вы можете сделать.Вы также можете использовать этот метод для отслеживания последовательности страниц, посещаемых на вашем сайте.

На самом деле, вы должны просто использовать стандартный пакет аналитики, такой как Google Analytics .

0 голосов
/ 13 апреля 2011

Вы можете добавить строку пользовательского агента в таблицу представлений, чтобы каждый визит состоял из кортежа (IP, Date, User agent). Это поможет рассчитывать посещения с одного и того же IP в разных браузерах как два разных посещения.

Вы можете получить строку пользовательского агента, используя $ _SERVER ['HTTP_USER_AGENT'].

0 голосов
/ 13 апреля 2011

Вы можете установить cookie и проверить, существует ли, прежде чем добавлять в счетчик, хотя это может вызвать некоторые другие проблемы.Возможно, вы захотите посмотреть, как реализован счетчик статистики WordPress, или, в качестве альтернативы, пойти на Google Analytics (если вы действительно не хотите бросить свой собственный :))

...