За последние 24 часа нас посетили 42583 программиста и 1814 роботов. Сейчас ищут 877 программистов ...

Поправить не могу скрипт whois

Тема в разделе "PHP для новичков", создана пользователем Mark32, 13 ноя 2008.

  1. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    вобщем надо сделать выпадающее меню выбора доменных имён.
    положим эту штуку вставляю в форму ниже

    <select name=zone>
    <option value="ru">.ru</option>
    <option value="su">.su</option>
    <option value="com">.com</option>
    <option value="eu">.eu</option>
    <option value="org">.org</option>
    <option value="net">.net</option>
    <option value="biz">.biz</option>
    <option value="info">.info</option>
    <option value="tv">.tv</option>
    <option value="spb.ru">.spb.ru</option>
    <option value="msk.ru">.msk.ru</option>
    </select>

    потом $domain=$domain.'.'.$zone; соответсвенно

    но хер - обрабатывается данная только которая прописана в <input type="text" name="domain">, а name=zone в игноре

    помогите разобраться!

    PHP:
    1.  
    2.  
    3. <?
    4. require_once("whois.php");
    5. ?>
    6. <html>
    7. <head>
    8. <title>скрипт WHOIS - пример использования</title>
    9. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
    10. <body>
    11. <form method="get">
    12. <input type="text" name="domain"><input type="submit" value="WHOIS">
    13. </form>
    14. <hr>
    15. <?
    16. if(isset($_GET["domain"]) && strlen($_GET["domain"])>0)
    17. {
    18.  $target=$_GET["domain"];
    19.  $whois=new whois();
    20.  $whois->zonelookup($target);
    21.  if($whois->ERROR==0)
    22.  {
    23.   if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
    24.   {
    25.    echo("<p><b>".$target."</b><br>IP: ".$whois->IP."</p><pre>");
    26.    foreach($whois->RAWINFO AS $str)
    27.    {
    28.     echo($str."\n");
    29.    }
    30.    echo("</pre>");
    31.    echo("<p>DNS INFO:</p><pre>");
    32.    foreach($whois->DNSINFO AS $str)
    33.    {
    34.     echo($str."\n");
    35.    }
    36.    echo("</pre>");
    37.   }else
    38.    {
    39.     echo("<p>".$target." <b>Free</b></p>");
    40.    }
    41.  }else
    42.   {
    43.    echo("<p>Requirest is fail</p>");
    44.   }
    45. }
    46. ?>
    47. <hr>
    48. <center>Copyright &copy; 2004-2005 by <a href="http://pws.ru/">PWS.RU</a></center>
    49. </body>
    50. </html>
    51. </body>
    52. </html>
     
  2. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    а как url выглядит после сабмита? &zone= в нем есть? и если есть то чему равно?
     
  3. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    $domain=$domain.'.'.$zone;
    получается так site.ru

    передача соотвественно такая: domain=site&zone=ru

    при echo $domain=$domain.'.'.$zone;
    всё нормально показывает,
    но вот скрипт выше игнорирует $domain=$domain.'.'.$zone; почему-то и работает по переданному только domain=
    странно, да?
     
  4. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    тут что-то очень простое и смешное, но вот как раз такое и составляет основную часть ошибок:)
     
  5. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    не могу понять что енто
     
  6. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    PHP:
    1. $domain=$domain.'.'.$zone;
    назови строчку в скрипте с эти кодом.
     
  7. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    пардон, что?
     
  8. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    в приведенном тобой скрипте этой строчки нет
     
  9. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    PHP:
    1.  
    2.  
    3.  
    4.  
    5. <?
    6.  require_once("whois.php");
    7.  ?>
    8.  <html>
    9.  <head>
    10.  <title>скрипт WHOIS - пример использования</title>
    11.  <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
    12.  <body>
    13.  <form method="get">
    14.  <input type="text" name="domain">
    15. <select name=zone>
    16. <option value="ru">.ru</option>
    17. <option value="su">.su</option>
    18. <option value="com">.com</option>
    19. <option value="eu">.eu</option>
    20. <option value="org">.org</option>
    21. <option value="net">.net</option>
    22. <option value="biz">.biz</option>
    23. <option value="info">.info</option>
    24. <option value="tv">.tv</option>
    25. <option value="spb.ru">.spb.ru</option>
    26. <option value="msk.ru">.msk.ru</option>
    27. </select>
    28. <input type="submit" value="WHOIS">
    29.  </form>
    30.  <hr>
    31.  <?
    32. $domain=$domain.'.'.$zone;
    33.  
    34. echo $domain; // высвечивает правильно, но сучка обрабатывает только $domain без .'.'.$zone;!!!!!!
    35.  
    36.  if(isset($_GET["domain"]) && strlen($_GET["domain"])>0)
    37.  {
    38.   $target=$_GET["domain"];
    39.   $whois=new whois();
    40.   $whois->zonelookup($target);
    41.   if($whois->ERROR==0)
    42.   {
    43.    if(is_array($whois->RAWINFO) && count($whois->RAWINFO)>7 && $whois->FOUND==1)
    44.    {
    45.    echo("<p><b>".$target."</b><br>IP: ".$whois->IP."</p><pre>");
    46.    foreach($whois->RAWINFO AS $str)
    47.    {
    48.      echo($str."\n");
    49.    }
    50.    echo("</pre>");
    51.    echo("<p>DNS INFO:</p><pre>");
    52.    foreach($whois->DNSINFO AS $str)
    53.    {
    54.      echo($str."\n");
    55.    }
    56.    echo("</pre>");
    57.    }else
    58.    {
    59.      echo("<p>".$target." <b>Free</b></p>");
    60.    }
    61.   }else
    62.    {
    63.    echo("<p>Requirest is fail</p>");
    64.    }
    65.  }
    66.  ?>
    67.  <hr>
    68.  <center>Copyright &copy; 2004-2005 by <a href="http://pws.ru/">PWS.RU</a></center>
    69.  </body>
    70.  </html>
    71.  </body>
    72.  </html>
    73.  
    74.  
    75.  
     
  10. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    А теперь покажи ту строчку, куда ты подставляешь $domain
     
  11. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    А кавычки вокруг zone за тебя кто ставить будет?
     
  12. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    да лан, и без кавычек пашет.

    короче решил:
    $target=$target.$zone;
    а в option value везде поставил точки (<option value=".ru">.ru</option> )
    и только при этих 2-х условиях работает.
    чудеса блин.

    Вопрос#2

    <head>
    <script type="text/javascript">
    <!--
    function myPopup() {
    window.open( "http://mysite/index.php", "myWindow",
    "status = 1, height = 300, width = 300, resizable = 0" )
    }
    //-->
    </script>
    </head>
    <body>
    <form method="GET" action="http://mysite/index.php">
    <input type="text" name="domain">
    <input type="button" onClick="myPopup()" value="ok">
    </form>
    </body>

    если запустить откроется конечно красивое маленькое окошечко, но переменные не передаются! action="http://mysite/index.php"> - не работает. Нахрен тогда джаваскрипт даёт такую фичу, если тупо открывает окно заданное в хеде window.open?! и нихера не передаёт переменные?!
    Это реально хератень жабаскрипта, или я парю и вопрос передачи переменных через форму в джава окно по другому решается?!
     
  13. Sergey89

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

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Ничего чудесного. Просто надо внимательнее изучать чужие скрипты.
     
  14. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    ты паришь. у тебя не сабмит, а просто баттон. соответственно сам по себе он из формы брать ничего не будет. поэтому
    [js]
    function myPopup() {
    domain=document.getElementById("domain").value;
    url="http://mysite/index.php?domain="+domain;
    window.open( url, "myWindow", "status = 1, height = 300, width = 300, resizable = 0" )
    }[/js]
    ну или если нравится в одну строку, то

    [js]function myPopup() {
    window.open( "http://mysite/index.php?domain="+document.getElementById("domain").value, "myWindow", "status = 1, height = 300, width = 300, resizable = 0" );
    }[/js]

    только учти, что getElementById берет элемент по его Id а не по имени, поэтому добавь id к инпуту
     
  15. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    дык пользователь сначала вводит в <input type="text" name="domain"> свой домен, а потом эта переменная передаётся в файл. как тут айди автоматом херачить?
     
  16. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    а... вообще не о том говорю...:)

    Джава понимаю крайне туго. Можно популярнее что за айди к инпуту нужно ставить и как
     
  17. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    это повод для драки!

    Чужой скрипт whois на php! Прикольно! :)
     
  18. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    <input name="domain" id="domain">

    фишка в том, что id должен быть уникальным, а name - не обязательно. Если нужно выбрать несколько сгруппированных элементов, то getElementsByName("имя"), а если нужен один-единственный элемент, то getElementById("айди")

    и не путай Java и javascript пожалуйста. Тебе все равно, а меня раздражает
     
  19. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    Спасибо!
    а там у меня ещё есть переменная zone
    как её правильно вставить в ..........?domain="+document.getElementById("domain").value,

    и ещё - у меня почему-то открывается два окна при сабмите - одно джаваскрипт, другое обычное..
     
  20. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0

    zone это select? тогда так:

    [js]zone=document.getElementById('zone').options[document.getElementById('zone').selectedIndex()].value
    ..........?domain="+document.getElementById('domain').value+'&zone='+zone"[/js]

    В данном случае document.getElementById("zone").selectedIndex() находит номер выбранной опции, а
    document.getElementById("zone").options[номер].value - значение опции по этому индексу.

    Будь осторожен с кавычками :)

    а два окна у тебя открываются потому что сабмит это сабмит. Он сабмитит форму в скрипт, указанный в action. А зачем тебе сабмит вообще? точнее что бы ты хотел вместо
     
  21. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    хотелось бы чтобы открывалось только одно окно:) то самое маленькое и симпатичное :)
     
  22. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    тогда не делай submit, простой кнопки тебе должно хватить
     
  23. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
    а просто кнопа это что?
     
  24. Mark32

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

    С нами с:
    15 июн 2008
    Сообщения:
    539
    Симпатии:
    2
  25. karakh

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

    С нами с:
    11 дек 2007
    Сообщения:
    1.344
    Симпатии:
    0
    <input type="button" onClick="myPopup()" value="ok">
    а сабмит это
    <input type="submit" value="ok">
    Или ты хочешь чтобы окно с формой закрывалось при этом?