Узнаем IP пользователя:
if (!empty($_SERVER['HTTP_CLIENT_IP'])){
$ip = $_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
else{
$ip = $_SERVER['REMOTE_ADDR'];
}
Предположим, что человек решил обновить страницу, но IP уже есть в вашей базе, следовательно остается только проверить на соответствие и в случае совпадения не засчитывать просмотр.
$query = mysql_query("SELECT `ip` from `table` where `ip` = '$ip'");
mysql_fetch_array($query);
if(isset($query['ip'])){
// Если ip есть, то не засчитываем
}else{
// Иначе засчитываем посещение и делаем sql запрос для увеличение счетчика
}
Вы наверное поняли, что для IP адресов вам нужно создать отдельную таблицу в БД и записывать их туда когда пользователь зайдет на страницу в первый раз и тогда после обновления страницы вы уже будете знать, что данный человек посещал страницу.
Возможно у вас возникнет вопрос об определении IP адреса, мол зачем там аж три разных варианта получения ip. Тык вот $_SERVER['HTTP_CLIENT_IP'] и $_SERVER['HTTP_X_FORWARDED_FOR']) содержат реальный ip адрес пользователя, то есть, если он зайдет к вам, используя прокси сервер, то вы получите не ip прокси, а ip его компа. Но на случай, если в этих двух переменных не будет ip адреса, то воспользуемся $_SERVER['REMOTE_ADDR'].
Есть еще вариант реализации с привязкой к кукки. Почитайте и попробуйте. Принцип тот же.
Я думаю, достаточно информации для того, чтобы вы сейчас пошли и сделали уникальный просмотр по IP адресам. Так что дерзайте :). А вообще почитайте о том, как лучше делать уникальные просмотры, ибо делать только по ip адресу не есть корректно.