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 :: проверка по IP

 PHP.SU

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


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

> Без описания
mihai
Отправлено: 05 Апреля, 2009 - 17:53:18
Post Id


Новичок


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


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




написал скрипт где
проверяем пришедшего пользователя по ip
но
проблем в том что при заходе на скрипт происходит запись ip в файл
и условие if else
проверяет тот ip который пришёл
с уже с тем который записали
и естественно выдаёт true
но
если не записывать пришедший ip
то функция in_array
выдаёт что ей нечего не счем сравнивать
а как
сделать так чтобы сначало проверить пришедший ip
есть ли он в массиве
а только потом записывать его или не записывать
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. $ip=$_SERVER["REMOTE_ADDR"];
  4. echo "ваш ip $ip<br>";
  5.  
  6. $myfilerecord="ipdb.txt";
  7. $openrecord=fopen($myfilerecord,"a");
  8. fwrite($openrecord, $ip."\n");
  9. fclose($openrecord);
  10.  
  11.  
  12. $myfileread="ipdb.txt";
  13. $openread=fopen($myfileread, "r");
  14. $read=fread($openread,filesize($myfileread));
  15. fclose($openread);
  16. echo "Это данные уже записанные в БД $read<br>";
  17.  
  18.  
  19. $ip2=file($myfilerecord);
  20.  
  21. if
  22. (in_array($ip."\n",$ip2)==true)
  23. {
  24.  
  25. exit ("есть такой ip");
  26. }
  27. else
  28. {
  29. echo "нет такой ip";
  30.  
  31. }
  32. ?>
  33.  
 
 Top
Andrey5555
Отправлено: 05 Апреля, 2009 - 18:03:54
Post Id


Частый гость


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


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




Попробуйте так:

if
(in_array($ip, $ip2))
{
exit ("есть такой ip");
}

else
{
echo "нет такой ip";
}
 
 Top
mihai
Отправлено: 05 Апреля, 2009 - 18:31:32
Post Id


Новичок


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


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




почемуто в этом случае выдаёт что
echo "нет такой ip";

хотя долже выдавать

exit ("есть такой ip)

но проблема не в этом
а в том чтобы сначало проверял IP а потом записывал
 
 Top
chaynyk
Отправлено: 06 Апреля, 2009 - 10:12:01
Post Id



Гость


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


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




Определяем ip-адрес?
http://forum.php.su/topic.php?fo...1&topic=1991
PHP:
скопировать код в буфер обмена
  1.  
  2. $ipnot=true; // переменая говорит что ip-адреса нету в базе
  3. $searchip=file_get_content("ipdb.txt");
  4. for ($i ; $i<count($searchip); $i++) {
  5. if ($searchip($i)==$newip) $ipnot=false; // $newip полученный ip-адрес
  6. }
  7. if ($ipnot==false) {
  8. echo 'Такой ip-адрес есть'; // ну и соответственно добавляем новый ip в файл ipdb.txt
  9. }
  10.  

(Отредактировано автором: 06 Апреля, 2009 - 10:40:31)



-----
Чайник в PHP и SEO,http://fleshky[dot]ru
 
 Top
mihai
Отправлено: 06 Апреля, 2009 - 16:20:35
Post Id


Новичок


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


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




chaynyk
спасибо

это для меня ещё не понятно
откуда взялась
$ipnot=true; // переменая говорит что ip-адреса нету в базе

и как это всё вместе собрать ???
Огорчение
 
 Top
chaynyk
Отправлено: 06 Апреля, 2009 - 17:10:53
Post Id



Гость


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


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




mihai пишет:
chaynyk
спасибо

это для меня ещё не понятно
откуда взялась
$ipnot=true; // переменая говорит что ip-адреса нету в базе

и как это всё вместе собрать ???
Огорчение

Мы объявляем переменную $ipnot (логическую либо 'да', либо 'нет', чтобы меньше брала ресурсов) присваиваем значение true(истина), тем самым присваиваем тип данных: истина или ложь
если ip-адрес совпадает с ip-адресом в файле 'ipdb.txt', то присваиваем значение 'false' (ложь)
В последней конструкции if проверяем значение переменной $ipnot . если true то ip-адрес новый: записываем в файл новый ip-адрес., если 'false' то он уже есть в БД.


-----
Чайник в PHP и SEO,http://fleshky[dot]ru
 
 Top
magistr_bender
Отправлено: 10 Апреля, 2009 - 23:16:04
Post Id


Новичок


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


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




а вообще ещё можно воспользоваться GeoAPI (о них тут http://codeismy.name/archives/501) и проверять не только по ипшнику а так же по региону Улыбка ну это если слишком замарачиваться будеш Улыбка

(Отредактировано автором: 10 Апреля, 2009 - 23:17:30)

 
 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