foreach

Тема в разделе "FAQ", создана пользователем Vovandor, 20 сен 2009.

Статус темы:
Закрыта.
  1. Vovandor

    Vovandor Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    46
    Симпатии:
    2
    Warning: Invalid argument supplied for foreach() in
    Как исправить эту ошибку вот строка на которую ссылается
    foreach($TLD AS $tldz)
     
  2. General Fizz

    General Fizz Боевой Генерал :)

    Регистр.:
    11 апр 2007
    Сообщения:
    753
    Симпатии:
    396
    Весь код вывали.
     
  3. axevs

    axevs Создатель

    Регистр.:
    13 янв 2008
    Сообщения:
    37
    Симпатии:
    45
    Foreach служит для перебора элементов массива. Скорее всего $TLD не является массивом.
     
  4. Vovandor

    Vovandor Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    46
    Симпатии:
    2
    Код:
    <form method="post">
    Домен: <input type="text" name="domain"><br>
    <input type="checkbox" name="TLD[]" value=".ru" id="l1"><label for="l1">.RU</label><br>
    <input type="checkbox" name="TLD[]" value=".info" id="l2"><label for="l2">.INFO</label><br>
    <input type="checkbox" name="TLD[]" value=".org" id="l3"><label for="l3">.ORG</label><br>
    <input type="checkbox" name="TLD[]" value=".com" id="l4"><label for="l4">.COM</label><br>
    <input type="submit" value="Проверить">
    </form>
    <hr>
    <?
    if(isset($_POST["domain"]) && strlen($_POST["domain"])>0 && isset($_POST["TLD"]) && is_array($_POST["TLD"]))
    {
     $target=$_POST["domain"];
     $whois=new whois();
     foreach($TLD AS $tldz)
     {
      echo($target.$tldz." - ");
      $whois->zonelookup($target.$tldz);
      if($whois->ERROR==0)
      {
       if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
       {
        echo("занят");
       }else
        {
         echo("свободен");
        }
      }else
       {
        echo("ошибка запроса");
       }
      echo("<br>");
     }
    }
    ?>
     
  5. TOLIK111

    TOLIK111 Постоялец

    Регистр.:
    5 фев 2009
    Сообщения:
    146
    Симпатии:
    15
    $TLD AS $told, такой вариант?
     
  6. axevs

    axevs Создатель

    Регистр.:
    13 янв 2008
    Сообщения:
    37
    Симпатии:
    45
    Так работает. Как я и писал выше $TLD не являлась массивом, она была не определена.
    PHP:
    <form method="post">
    Домен: <input type="text" name="domain"><br>
    <input type="checkbox" name="TLD[]" value=".ru" id="l1"><label for="l1">.RU</label><br>
    <input type="checkbox" name="TLD[]" value=".info" id="l2"><label for="l2">.INFO</label><br>
    <input type="checkbox" name="TLD[]" value=".org" id="l3"><label for="l3">.ORG</label><br>
    <input type="checkbox" name="TLD[]" value=".com" id="l4"><label for="l4">.COM</label><br>
    <input type="submit" value="Проверить">
    </form>
    <hr>
    <?
    if(isset($_POST["domain"]) && strlen($_POST["domain"])>0 && isset($_POST["TLD"]) && is_array($_POST["TLD"]))
    {
     $target=$_POST["domain"];
     $TLD = $_POST["TLD"];
     $whois=new whois();
     foreach($TLD AS $tldz)
     {
      echo($target.$tldz." - ");
      $whois->zonelookup($target.$tldz);
      if($whois->ERROR==0)
      {
       if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
       {
        echo("занят");
       }else
        {
         echo("свободен");
        }
      }else
       {
        echo("ошибка запроса");
       }
      echo("<br>");
     }
    }
    ?>
     
    Vovandor нравится это.
  7. Vovandor

    Vovandor Создатель

    Регистр.:
    8 янв 2008
    Сообщения:
    46
    Симпатии:
    2
    Всё заработало спс
     
Статус темы:
Закрыта.