Простой способ проверить уникальность незарегистрированных посетителей

Есть ли способ узнать, когда пользователь заходит на мой сайт, если он уже зашел, не имея пользователей для входа? Мне не нужно, чтобы он был чрезвычайно точным, но в большинстве случаев его было легко реализовать и работать. Я подумал об использовании IP-адреса +useragent combo. Что вы думаете об этом?

3 ответа

Решение

Установите cookie-файл при каждом посещении пользователем вашего сайта. Если у клиента есть этот cookie-файл, это означает, что он уже посетил ваш сайт, в противном случае его нет или его также можно проверить по IP.

Быстрый скрипт с использованием Cookies:

if(isset($_COOKIE["user_visited"]))
{
    //He has already visited you.
}else{
    //Set a new cookie.
    setcookie("user_visited","user");
}

Метод IP

//Need to create a user_ip table for it and store everybodies ip(s) in it.
$user_ip    =   $_SERVER["REMOTE_ADDR"];
if(isset($user_ip)){
    $query  =   mysql_query("SELECT * FROM `user_ip` WHERE `ip`='$user_ip'");
    $count  =   mysql_num_rows($query);
    if($count > 0){
        //User already visited you
    }else{
        //He hasn't visited you.
        //Save his IP to know if he visit again.
        $query("INSERT INTO `user_ip` VALUES('$user_ip')");
    }
}

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

Обратите внимание, что файлы cookie могут быть удалены или отклонены клиентами. Кроме того, многие клиенты автоматически рассматривают файлы cookie как сеансовые файлы cookie, поэтому файлы cookie автоматически удаляются в момент закрытия браузера.

Самый простой способ - использовать cookie для него. Просто добавьте cookie следующим образом:

if ( !isset( $_COOKIE['visited'] ) {
    // user is newbie
    setcookie("visited", '1', time() + 365 * 3600); // set cookie for 1 year
} else {
    // user has already visited your site
}
Другие вопросы по тегам