За последние 24 часа нас посетили 17450 программистов и 1686 роботов. Сейчас ищут 943 программиста ...

Не работает функция в цикле

Тема в разделе "PHP для новичков", создана пользователем DobroFenix, 3 июл 2012.

  1. DobroFenix

    DobroFenix Активный пользователь

    С нами с:
    22 май 2010
    Сообщения:
    89
    Симпатии:
    0
    Помогите разобраться...
    В цикле некорректно выполняется функция, хотя без цикла всё работает.

    Код (PHP):
    1.  function netMatch ($CIDR,$IP) { 
    2.     list ($net, $mask) = explode ('/', $CIDR); 
    3.     return ( ip2long ($IP) & ~((1 << (32 - $mask)) - 1) ) == ip2long ($net); 
    4. }  
    5.  
    6. print "<br><br>";
    7. var_dump(netMatch('85.0.0.0/8','85.113.58.199'));
    8.         $seek_ip=netMatch('85.0.0.0/8','85.113.58.199');
    9.         if($seek_ip!="1")$seek_ip="0";
    10.         if($seek_ip=="1"){ print "BINGO! "; }else{ print ":( "; }
    11.  
    12.  
    13. $SEEK_IP_POOL_S = mysql_query("SELECT * FROM ip_permission WHERE client='$user_id'");
    14.                 while($SEEK_IP_POOL  = mysql_fetch_array($SEEK_IP_POOL_S )){
    15. //$seek_ip="0";
    16.         $ip_mask="$SEEK_IP_POOL[ip]"."$SEEK_IP_POOL[mask]";
    17.         $seek_ip=netMatch($ip_mask,'$user_ip');
    18.         if($seek_ip!="1")$seek_ip="0";
    19.         if($seek_ip=="1"){ print "BINGO! "; }else{ print ":( "; }
    20.  
    21. print "$seek_ip=netMatch('$ip_mask','$user_ip'); $ip_mask<br>";
    22. //$seek_ip="0";    
    Цикл для netMatch('85.0.0.0/8','85.113.58.199'); отдаёт 0, хотя без цикла отдаётся еденица. Что делаю не так?

    Добавлено спустя 4 минуты 7 секунд:
    В цикле только 0.0.0.0/0 работает
    Добавлено спустя 5 минут 28 секунд:
    То для всех ip и масок работает.
    Цикл отдаёт:
    Добавлено спустя 33 минуты 29 секунд:
    Заметил, так аналогично со всеми функциями. Что Я делаю не так с циклом, что у меня он отдаёт не верный результат?