webcoderpro
@webcoderpro
Верстальщик

Делаю уникальный просмотр по IP адресу, как сделать чтобы IP второй раз не записывался в базу данных?

Вот в базе данных повторяетя один и тот же IP адрес
62ee4eb020ad46748cadf29f3916b71b.jpg
function views($table, $title)
{
db_connect();
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'];
}

$query = mysql_query("SELECT `ip` FROM `ip` where `ip` = '$ip'");
mysql_fetch_array($query);
if(isset($query['ip'])){
// Если ip есть, то не засчитываем

}else{
// Иначе засчитываем посещение и делаем sql запрос для увеличение счетчика
$query = sprintf(" SELECT views FROM $table WHERE $table.title_url = '%s' ",
mysql_real_escape_string($title));
$views = $query['views']+1;
mysql_query(" UPDATE $table SET views='$views' WHERE $table.title_url = '$title' ");
mysql_query(" INSERT INTO `ip` (`ip`) VALUES ('$ip') ");
}
}

Если можете, напишите код, заранее спасибо.
  • Вопрос задан
  • 391 просмотр
Решения вопроса 1
@zhainar
Гуглю за вас
Определить поле как unique
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
kaiten
@kaiten
Архитектор ИС
dev.mysql.com/doc/refman/5.7/en/insert-on-duplicat...

Есть прекрасная функция, которая вам очень подойдёт
Ответ написан
Комментировать
@Cesavel
Ip2long, long2ip не?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы