Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Сравнение полей в базе.

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
Дмитрий О.
Отправлено: 21 Августа, 2013 - 03:11:31
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




есть скрипт, он добавляет ip в таблицу при отсутствии кукисов, работает исправно.

но я никак не могу реализовать следующее.

Как сделать проверку условием, что если текущий ip равен одному из ip в таблице, то добавлять его не нужно.

кружусь возле следующих действий.

PHP:
скопировать код в буфер обмена
  1.  
  2. $ip = $_SERVER['REMOTE_ADDR'];
  3. //....//
  4. //условие с куками//
  5. if($ip = ) {
  6.  
  7. }
  8.  
  9.  


но никак не могу понять, чему должен быть равен $ip, что бы условие сработало, как произвести это сравнение?.


Спасибо за помощь.
(Добавление)
Извините пожалуйста, сам сделал.
(Добавление)
Если не сложно, прокомментируйте мой вариант, может можно проще сделать ?...

PHP:
скопировать код в буфер обмена
  1.  
  2. $ip_sff = mysql_query("SELECT ip FROM visitor WHERE ip='$ip'");
  3. $ip_un = mysql_fetch_array($ip_sff);
  4.  
  5. if (empty($ip_un['ip'])) {
  6.         $insert = mysql_query("INSERT INTO visitor (ip,date) VALUES('$ip','$date_today')");
  7.         //если нету - добавляем
  8.     } else {
  9.        //действия, если есть. Я этот else {} удалил. т.к. нет небходимости.
  10.         }
  11.  


Еще раз, спасибо за комментарии.
 
 Top
Zuldek
Отправлено: 21 Августа, 2013 - 09:15:55
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




REPLACE не?
 
 Top
Andruxa
Отправлено: 21 Августа, 2013 - 09:48:56
Post Id



Частый гость


Покинул форум
Сообщений всего: 140
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




А если поле не пустое в таблице!? И там есть ip который сейчас и у нас.
Может сделать еще проверку на соответствие
PHP:
скопировать код в буфер обмена
  1. if (empty($ip_un['ip']) and $ip_un['ip'] !=$ip) {
  2.         $insert = mysql_query("INSERT INTO visitor (ip,date) VALUES('$ip','$date_today')");
  3.         //если нету - добавляем
  4.     }
 
 Top
Дмитрий О.
Отправлено: 21 Августа, 2013 - 10:00:46
Post Id


Новичок


Покинул форум
Сообщений всего: 2
Дата рег-ции: Авг. 2013  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2. if (!isset($_COOKIE['counter_visitor'])) { //если кукисов нету
  3.         SetCookie("counter_visitor","Количество просмотров сайта", time()+604800); // добавляем куки
  4.         if (empty($ip_un['ip'])) { //если поле пустое, добавляем следующие переменные.
  5.         $insert = mysql_query("выбираем таблицу... добавляем перменные...");
  6.     }
  7. } else { //если куки есть
  8.                 if (!empty($ip_un['ip'])) //если уже есть такой ip
  9.         {
  10.                 if ($ip = $ip_un['ip']){ //сравниваем ip поля с текущим
  11.                 mysql_query("UPDATE visitor SET lastd='$last_today' WHERE ip='$ip'"); //обновляем дату последнего визита.
  12.                 }
  13.         } else { //если ip нету, но куки есть, добавляем теже переменные.
  14.                         $insert = mysql_query("выбираем таблицу... добавляем перменные...");
  15.                 }
  16. }


вот как у меня реализовано на текущий момент.
это только часть с ip и куками.

И по сути, если такой ип уже есть, то обновляется только дата последнего визита.

Все работает, вроде бы.

(Отредактировано автором: 21 Августа, 2013 - 10:01:33)

 
 Top
eai
Отправлено: 21 Августа, 2013 - 10:09:01
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 521
Дата рег-ции: Сент. 2009  
Откуда: Петроград


Помог: 10 раз(а)




При хранение IP следует уже задуматься про IPv6 (так совет на всякий случай)
 
 Top
Zuldek
Отправлено: 21 Августа, 2013 - 11:38:12
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Andruxa пишет:
А если поле не пустое в таблице!? И там есть ip который сейчас и у нас

То перезапишет и это будет правильно в контексте задачи отслеживания изменений адресов ибо обычно ещё пишется и время.

(Отредактировано автором: 21 Августа, 2013 - 11:39:48)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB