Отправляет email-рассылки с помощью сервиса Sendsay

Еженедельник сайтостроителя

  Все выпуски  

Идентификация пользователя.


Подшивка рассылки Обратная связь

№20 02.11.07

Привет всем тем, кто не испугался перспективы быть засыпанным спамом по самые уши, и все-таки проверил свой почтовый ящик.
Нам часто приходится определять, был ли тот или иной посетитель у нас на сайте или он пришел впервые. Этим сегодня и займемся.

Итак, какие же средства опознавания есть в нашем распоряжении, учитывая наличие PHP?
1. Мы можем определить браузер пользователя (а также ОС и т.п.)
2. Нам также доступен IP-адрес посетителя (хотя его можно скрыть при помощи прокси-серверов)
3. И, наконец, мы имеем доступ к ранее созданным нами COOKIE

Теоретически мы можем сюда добавить сессии, но они будут жить только во время передвижения нашего пользователя по сайту, либо пока посетитель не закроет браузер, очистив тем самым наши COOKIE, если таковые использовались для хранения информации сессии. Но пока речь не о сессиях. Кстати, если Вам интересна эта тема (сессии и их использование), жду Ваших писем в «обратной связи».

Таким образом, мы видим, что использование этих трех пунктов по отдельности не принесет желаемого результата. Браузер можно поменять, к тому же одним и тем же браузером пользуются тысячи (а иногда и миллионы) людей. IP-адрес у нас чаще всего переменный. А COOKIE пользователь может удалить вручную. Следовательно, для большей точности нужно совмещать все эти способы.


Файл whoareyou.php

<?php
//устанавливаем COOKIE со сроком жизни «ну очень много:)»
if (!isset($_COOKIE['testcookie'])) {
setcookie("testcookie", time(), 0x7FFFFFFF);
}
//открываем текстовый файл "soft.txt"
$fs = fopen("soft.txt", "a+");
flock ($fs, 2);
//записываем в него IP-адрес + браузер
fwrite($fs, $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']."\r\n");
fclose ($fs); //закрываем файл
?>


Второй параметр функции setcookie() мы выбираем произвольно (у меня время) - это значение ключа "testcookie", а третий - время жизни COOKIE.
Теперь нам останется только проверить наличие переменной $_COOKIE['testcookie'] у нашего посетителя, и если ее не обнаружится, значит посетитель у нас впервые либо он специально удалил COOKIE, либо он использует другой компьютер. Ну и на всякий случай мы запомнили связку «IP-адрес + браузер», но она не очень надежна… Если Вы знаете, другие способы идентификации, не жадничайте, пишите, поделимся с остальными. Пока все. Жду Ваших писем, скачивайте свежую «подшивку».

Сделай свой сайт оригинальнее вместе с Еженедельником сайтостроителя!


В избранное