@maiskiykot
Free coder

Почему не срабатывает функция?

Не могу понять причину неработающей функции:
function check_ip()
{
    $fil = file("ip.txt");
 
     foreach ($fil as $val)
    {
     if (!@in_array(trim($val),$_SESSION['ip']))
     {
      $found = 1;
      $_SESSION['ip'][]= trim($val);       
       return trim($val);    
       
     }     
    }
    if (!$found)
   {
      $_SESSION['ip'] = Array();
      include_once "func.php"; // переписывает файл ip.txt
      return trim($arr[1]); // массив $arr формируется в файле func.php
   }
}


Пока массив $fil отрабатывает - все отлично. Потом обнуляется массив $_SESSION['ip'], переписывается файл ip.txt и все останавливается. Никаких ошибок нет, по идее основной цикл должен продолжаться, который получает из этой функции ip, но все останавливается. Я грешил на продолжительность выполнения func.php (где-то минут 5), увеличил все возможные таймауты, но все равно останавливается скрипт. По идее ведь основной цикл не должен выполняться пока не получит ip от этой функции или это не так? Уже весь мозг поломал.
  • Вопрос задан
  • 187 просмотров
Решения вопроса 1
@maiskiykot Автор вопроса
Free coder
Как обычно выкрутился сам. Плюнул на этот вариант и сделал вызов файла func.php курлом с таймаутом. Начало все крутиться! Всем спасибо за участие!
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@ipokos
Потом обнуляется массив $_SESSION['ip'], переписывается файл ip.txt и все останавливается

А что должно продолжаться если цикл закончил перебирать массив?

по идее основной цикл должен продолжаться, который получает из этой функции ip

что значит основной цикл? Вы эту функцию вызываете в цикле в другом месте?
Если да, то как он должен работать если вы обнуляете все данные из SESSION['ip'], а потом проверяете вхождение в него?

Зачем break после return ?
что бы точно дальше итерации не пошли? если да, то тогда лучше несколько ставить break; break; break;

По идее ведь основной цикл не должен выполняться пока не получит ip от этой функции или это не так?

И снова, что это за мистический " основной цикл" ?
Ответ написан
Ваш ответ на вопрос

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

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