[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. NuR

    NuR Elder - Старейшина

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    вот так
     
  2. NuR

    NuR Elder - Старейшина

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    человек не знает как if/else организовать а ты тут ему про буферизацию и тому подобное кидаешь доку=)
     
    1 person likes this.
  3. Nek1t

    Nek1t Elder - Старейшина

    Joined:
    7 Mar 2008
    Messages:
    181
    Likes Received:
    16
    Reputations:
    1
    NuR
    Ммм, не работает.
    Я наверное не все написал, выглядит изначально так:

    Code:
    <h2 class="res_list_1" dir="ltr"><a href="http://123/"  class="res-1-lnk" target="_blank" onmouseover="return omff('http://123/')" onmouseout="omff()">
     
  4. NuR

    NuR Elder - Старейшина

    Joined:
    11 Dec 2005
    Messages:
    85
    Likes Received:
    58
    Reputations:
    -2
    2 пробело удалил ачат с моей регулярки вот и не пашет=) вот так тогда
     
    1 person likes this.
  5. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    PHP:
    <?php
    $str 
    '<h2 class="res_list_1" dir="ltr"><a href="http://123/"  class="res-1-lnk" target="_blank" onmouseover="return omff(\'http://123/\')" onmouseout="omff()">';
    preg_match('#<a href=\"(.*)\".*?class=#',$str,$matches);
    echo 
    $matches[1];
    ?>
     
  6. mff

    mff Elder - Старейшина

    Joined:
    12 Mar 2008
    Messages:
    2,074
    Likes Received:
    701
    Reputations:
    227
    Нужно продлить время жизни куки на php...
    Как лучше сделать:
    Запсать в .htaccess
    Code:
    php_value session.gc_maxlifetime 10800
    php_value session.cookie_lifetime 10800
    или перед стартом сессии?
    PHP:
    session_set_cookie_params(10800);
    Спасибо! :)
     
  7. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    впринципе,мне кажеться лучше второе,смотриться правильнее...
     
    2 people like this.
  8. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    зато первое быстрее
     
    1 person likes this.
  9. nerezus

    nerezus Banned

    Joined:
    12 Aug 2004
    Messages:
    3,191
    Likes Received:
    729
    Reputations:
    266
    О боже... первое у него быстрее...
    Еще скажи, что "$var1 $var2" не юзаешь...

    Способы абсолютно равносильные.
     
    1 person likes this.
  10. o_OBallers

    o_OBallers Banned

    Joined:
    11 Oct 2007
    Messages:
    23
    Likes Received:
    24
    Reputations:
    0
    AJAX, вывод во время выполнения.

    Есть скрипт, который проверяет заняты домены или нет должен выводить список незарегистрированных доменов,

    Работает нормально, только когда доменов много, приходится ждать в безответности.
    Как сделать, чтобы строка echo "$target<br>"; выводилась сразу а не после окончания работы скрипта.

    Заранее благодарен.

    Если будете подсказывать на основе фреймворка укажите какой нужен.

    Сам скрипт

    PHP:
    <?
    require_once(
    "whois.php");
    $h fopen("domain.txt""r"); 
    while (!
    feof ($h)) 
    {
        
    set_time_limit(30); 
        
    $domain fgets($h);
        
    $target $domain;
        
    $whois=new whois();
        
    $whois->zonelookup($target);
        if(
    $whois->ERROR==0)
          {
            if(
    is_array($whois->RAWINFO) && count($whois->RAWINFO)>&& $whois->FOUND==1)
              {
                
    sleep(1); 
              }
            else
              {
               echo 
    "$target<br>";
              }          
          } 
    }
    fclose($h);
    ?>
    whois.php

    PHP:
    <?php 

    class whois {

    var 
    $port 43;
    var 
    $MAXLEN 1024;

    var 
    $QUERY_TYPE "domain";     
    var 
    $DEFAULT_SERVER "whois.crsnic.net";

    var 
    $MAX_RETRIES 3;
    var 
    $SLEEP_VAL 1;
    var 
    $RETRY 0;

    var 
    $FOUND 0
    var 
    $ERROR 0
    var 
    $DATA_MIN 8

    var 
    $DATA_COUNT 0;


    var 
    $ORGANIZATION;
    var 
    $ORG_HANDLE;
    var 
    $ORG_ADDRESS;       
    var 
    $DOMAIN_NAME;
    var 
    $DOMAIN_STATUS;     
    var 
    $ADMIN;             
    var 
    $TECH;             
    var 
    $ZONE;              
    var 
    $BILLING;
    var 
    $UPDATED;
    var 
    $CREATED;           
    var 
    $DNS_NAME=array();         
    var 
    $HANDLES;           

    var 
    $IP="";

    var 
    $SERVER = array(
    "com"=>"whois.crsnic.net",
    "net"=>"whois.crsnic.net",
    "edu"=>"whois.educause.net",
    "org"=>"whois.publicinterestregistry.net",
    "arpa"=>"whois.arin.net",
    "ripe"=>"whois.ripe.net",
    "mil"=>"whois.nic.mil",
    "coop"=>"whois.nic.coop",
    "museum"=>"whois.museum",
    "biz"=>"whois.neulevel.biz",
    "info"=>"whois.afilias.net",
    "name"=>"whois.nic.name",
    "gov"=>"whois.nic.gov",
    "aero"=>"whois.information.aero",
    "ns"=>"whois.internic.net",
    "ip"=>"whois.ripe.net",
    "ad"=>"whois.ripe.net",
    "al"=>"whois.ripe.net",
    "am"=>"whois.ripe.net",
    "as"=>"whois.gdns.net",
    "at"=>"whois.nic.at",
    "au"=>"box2.aunic.net",
    "az"=>"whois.ripe.net",
    "ba"=>"whois.ripe.net",
    "be"=>"whois.dns.be",
    "bg"=>"whois.ripe.net",
    "br"=>"whois.nic.br",
    "by"=>"whois.ripe.net",
    "ca"=>"eider.cira.ca",
    "cc"=>"whois.nic.cc",
    "ch"=>"domex.switch.ch",
    "ck"=>"whois.ck-nic.org.ck",
    "cl"=>"nic.cl",
    "cn"=>"whois.cnnic.net.cn",
    "cx"=>"whois.nic.cx",
    "cy"=>"whois.ripe.net",
    "cz"=>"dc1.eunet.cz",
    "de"=>"whois.denic.de",
    "dk"=>"whois.dk-hostmaster.dk",
    "do"=>"ns.nic.do",
    "dz"=>"whois.ripe.net",
    "ee"=>"whois.ripe.net",
    "eg"=>"whois.ripe.net",
    "es"=>"whois.ripe.net",
    "fi"=>"whois.ripe.net",
    "fo"=>"whois.ripe.net",
    "fr"=>"winter.nic.fr",
    "ga"=>"whois.ripe.net",
    "gb"=>"whois.ripe.net",
    "ge"=>"whois.ripe.net",
    "gl"=>"whois.ripe.net",
    "gm"=>"whois.ripe.net",
    "gr"=>"whois.ripe.net",
    "gs"=>"whois.adamsnames.tc",
    "hk"=>"whois.hkdnr.net.hk",
    "hr"=>"whois.ripe.net",
    "hu"=>"whois.nic.hu",
    "id"=>"muara.idnic.net.id",
    "ie"=>"whois.domainregistry.ie",
    "il"=>"whois.isoc.org.il",
    "in"=>"whois.ncst.ernet.in",
    "is"=>"horus.isnic.is",
    "it"=>"whois.nic.it",
    "jo"=>"whois.ripe.net",
    "jp"=>"whois.nic.ad.jp",
    "kg"=>"whois.domain.kg",
    "kh"=>"whois.nic.net.kh",
    "kr"=>"whois.krnic.net",
    "la"=>"whois.nic.la",
    "li"=>"domex.switch.ch",
    "lk"=>"arisen.nic.lk",
    "lt"=>"ns.litnet.lt",
    "lu"=>"whois.dns.lu",
    "lv"=>"whois.ripe.net",
    "ma"=>"whois.ripe.net",
    "mc"=>"whois.ripe.net",
    "md"=>"whois.ripe.net",
    "mm"=>"whois.nic.mm",
    "ms"=>"whois.adamsnames.tc",
    "mt"=>"whois.ripe.net",
    "mx"=>"whois.nic.mx",
    "nl"=>"whois.domain-registry.nl",
    "no"=>"ask.norid.no",
    "nu"=>"whois.worldnames.net",
    "nz"=>"akl-iis.domainz.net.nz",
    "pl"=>"nazgul.nask.waw.pl",
    "pt"=>"whois.ripe.net",
    "ro"=>"whois.rotld.ro",
    "ru"=>"whois.ripn.net",
    "se"=>"ear.nic-se.se",
    "sg"=>"qs.nic.net.sg",
    "sh"=>"whois.nic.sh",
    "si"=>"whois.arnes.si",
    "sk"=>"whois.ripe.net",
    "sm"=>"whois.ripe.net",
    "st"=>"whois.nic.st",
    "su"=>"whois.ripn.net",
    "tc"=>"whois.adamsnames.tc",
    "tf"=>"whois.adamsnames.tc",
    "th"=>"whois.thnic.net",
    "tj"=>"whois.nic.tj",
    "tn"=>"whois.ripe.net",
    "to"=>"whois.tonic.to",
    "tr"=>"whois.ripe.net",
    "tw"=>"whois.twnic.net",
    "tv"=>"whois.nic.tv",
    "ua"=>"whois.net.ua",
    "uk"=>"whois.nic.uk",
    "us"=>"whois.nic.us",
    "va"=>"whois.ripe.net",
    "vg"=>"whois.adamsnames.tc",
    "ws"=>"whois.worldsite.ws",
    "yu"=>"whois.ripe.net",
    "za"=>"apies.frd.ac.za",
    "xn--p1ag"=>"ru.whois.i-dns.net",
    "xn--p1ag"=>"ru.whois.i-dns.net",
    "xn--j1ae"=>"whois.i-dns.net",
    "xn--e1ap"=>"whois.i-dns.net",
    "xn--c1av"=>"whois.i-dns.net",
    "net.ru"=>"whois.ripn.net",
    "org.ru"=>"whois.ripn.net",
    "pp.ru"=>"whois.ripn.net",
    "spb.ru"=>"whois.relcom.ru",
    "msk.ru"=>"whois.relcom.ru",
    "ru.net"=>"whois.relcom.ru",
    "yes.ru"=>"whois.regtime.net",
    "uk.com"=>"whois.centralnic.com",
    "uk.net"=>"whois.centralnic.com",
    "gb.com"=>"whois.centralnic.com",
    "gb.net"=>"whois.centralnic.com",
    "eu.com"=>"whois.centralnic.com"
                    
    );
    var 
    $TLD;
    var 
    $RAWINFO;
    var 
    $DNSINFO;

    function 
    connect ($server)
    {
     while(
    $this->RETRY <= $this->MAX_RETRIES)
     {
      
    $ptr=fsockopen($server$this->port); 
      if(
    $ptr>0)
      {
       
    $this->ERROR=0;
       return(
    $ptr);
      }else
       {
        
    $this->ERROR++;
        
    $this->RETRY++;
        
    sleep($this->SLEEP_VAL);
       }
     }
    }


    function 
    rawlookup ($query)
    {
     
    $array=array();
     
    $this->FOUND=1;
     
    $query=strtolower(trim($query));
     if(
    strlen($query)<=2)
     {
      
    $this->ERROR=1;
      return(
    $array);
     }

     
    $server=$this->DEFAULT_SERVER;

     if(
    $this->QUERY_TYPE=="domain")
     {
      
    ereg(".+\.(.+)\.{0,1}",$query,$backrefs);
      if(isset(
    $backrefs[1]) && strlen($backrefs[1])>&& isset($this->SERVER[$backrefs[1]]))
      {
       
    $this->TLD=$backrefs[1];
       
    $server=$this->SERVER[$this->TLD];
      }

     }
     
    $ptr=$this->connect($server);
     if(
    $ptr)
     {
      
    $query .= "\n";
      
    fputs($ptr$query);
      
    $i=0;
      while(!
    feof($ptr))
      {
       
    $array[$i]=fgets($ptr,$this->MAXLEN);
       
    $this->DATA_COUNT+=strlen(trim($array[$i]));
       if(
    eregi("No match for"$array[$i]) || eregi("Not found"$array[$i]) || eregi("No entries found for"$array[$i]))
       {
        
    $this->FOUND=0;
        break;
       }
       if(
    eregi("WHOIS database is down",$array[$i]) || eregi("Please wait a while and try again",$array[$i]))
       {
        
    $this->ERROR=1;
        
    $this->FOUND=0;
        break;
       }
       
    $i++;
      }
      
    fclose($ptr);
      if(
    $this->DATA_COUNT>$this->DATA_MIN && $this->ERROR==&& $this->FOUND==1)
      {
       return(
    $array);
      }
     }

     return (array());
    }



    function 
    parsezone ($array)
    {
     
    $result=array();
     if(!isset(
    $array) || !is_array($array) || count($array)<=3)
     {
      
    $this->FOUND=0;
      return 
    $result;
     }
     
    $cnt=count($array);
     
    $rescnt=0;
     
    $i=0;
     
    $isinfo=true;
     while(
    $i<$cnt)
     {
      if(!
    $isinfo)
      {
       
    $str=trim($array[$i]);
       
    $result[$rescnt]=$str;
       
       if(
    eregi("NAME SERVER"$str) || eregi("NSERVER"$str))
       {
        
    $str=trim(substr($strstrpos($str":")+1));
        if(
    $pos=strpos($str" "))
        {
         
    $str=substr($str0$pos);
        }
        if(
    substr($str, -1)==".")
        {
         
    $str=substr($str0, -1);
        }
        
    $this->DNS_NAME[]=strtolower($str);
       }
       
    $rescnt++;
      }
      if(
    trim($array[$i])=="" && $isinfo)
      {
       
    $isinfo=false;
      }
      
    $i++;
     }
     return 
    $result;
    }

    function 
    zonelookup ($query)
    {
      
    $query=trim($query);
      
    $this->RAWINFO=$this->rawlookup($query);
      if(
    $this->FOUND)
      {
         
    $this->RAWINFO=$this->parsezone($this->RAWINFO);
      }
      if(
    $this->FOUND==0)
      {
       return;
      }
      
    //if($this->dns_lookup($query))
      //{
       //$this->IP=gethostbyname($query);
       //$this->build_dns($query);
      //}
    }

    function 
    build_dns($query)
    {
     
    $cnt=0;
    // $temp=dns_get_record($query, "NS");
     
    foreach($this->DNS_NAME AS $dns)
     {
      
    $this->DNSINFO[$cnt]="NS: ".$dns."\tinternet address = ".gethostbyname($dns);
      
    $cnt++;
     }
     if(
    getmxrr($query$temp)) 
     {
      foreach(
    $temp AS $dns)
      {
       
    $this->DNSINFO[$cnt]="MX: ".$dns."\tinternet address = ".gethostbyname($dns);
       
    $cnt++;
      }
     }

    }
    //function dns_lookup($query)
    //{
      //return checkdnsrr($query,"MX");
    //}


    };

    ?>
     
  11. metaN™®

    metaN™® Member

    Joined:
    7 Apr 2008
    Messages:
    0
    Likes Received:
    59
    Reputations:
    9
    подскажите плз, я тут небольшую пагу делаю нужно сделать так чтобы дать допустим 3и линка, и когда юзер нажимает на какой нибуть, то открывалось небольшое окошечко, а в нем информация моя.
    Большое спасибо заранее!
    Желательно если есть на html либо на пхп.
     
    #5411 metaN™®, 15 Sep 2008
    Last edited: 15 Sep 2008
  12. DDoSька

    DDoSька Elder - Старейшина

    Joined:
    5 May 2008
    Messages:
    317
    Likes Received:
    352
    Reputations:
    18
    Это кажись JS,ну если сложнее то AJAX...
     
    1 person likes this.
  13. metaN™®

    metaN™® Member

    Joined:
    7 Apr 2008
    Messages:
    0
    Likes Received:
    59
    Reputations:
    9
    DDoSька ыы, ну если это ява скрипт, то где этот скрипт взять? :D
     
  14. ufalog

    ufalog Elder - Старейшина

    Joined:
    28 Jul 2007
    Messages:
    174
    Likes Received:
    6
    Reputations:
    -5
    Мини модуль (добавить в ссылку цифру и перейти)

    [​IMG]

    PHP:
    <body>
    <
    form name="form1" method="post" action="">
      <
    label>
      <
    input name="textfield" type="text" value="№" size="5">
      </
    label>
      <
    label>
      <
    input type="submit" name="Submit" value="Перейти">
      </
    label>
    </
    form>
    </
    body>
    1 - есть ссылка постоянная

    http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,x/

    x=номеру предложения (х изменяецо от 1 до 99999999)

    Нужен модуль чтоб подставляеш цифру от 1 до 99999999 и нажимаеш кнопку перейти.

    Допустим ввели цифру 1 нажимаеш переход и оказываемся на странице

    http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,1/


    Или ввели цифру 87 нажимаеш переход и оказываемся на странице

    http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,87/

    Подскажите код для модуля Joomla (на PHP наверно легче такое осуществлить)

    :)
     
  15. Barttos

    Barttos New Member

    Joined:
    6 Jun 2008
    Messages:
    19
    Likes Received:
    2
    Reputations:
    0
    header("Location" http://site.com/component/option,com_estateagent/Itemid,99999999/act,object/task,showEO/id,".$_POST['testfield']."/");
     
  16. Кубик Рубик

    Joined:
    10 Apr 2008
    Messages:
    48
    Likes Received:
    0
    Reputations:
    0
    Всем привет, скрипт выводит из базы адрес и имя ссылки.

    PHP:
    while ($row2=mysql_fetch_array($res)) {
    echo 
    "<a href="."index.php?page="."$row2['name']".">"."$row2['name2']"."</a>";
    }
    Пишет:


    в чем дело? :confused:
    Заранее спасибо!
     
  17. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    PHP:
     while ($row2=mysql_fetch_array($res)) 
    echo 
    '<a href="index.php?page='.$row2['name'].'">'.$row2['name2'].'</a>'

     
  18. PandoraBox

    PandoraBox Elder - Старейшина

    Joined:
    6 May 2007
    Messages:
    262
    Likes Received:
    176
    Reputations:
    7
    PHP:
    //MySQL Options
    $mysql_host       =  "localhost";
    $mysql_db_name    =  "database_name";
    $mysql_login      =  "";
    $mysql_password   =  "";

    // MySQL Connect
    if (!$db mysql_connect($mysql_host$mysql_login$mysql_password)) {
            echo(
    "Could not connect to db."); //
    } else {
        if (!
    mysql_select_db($mysql_db_name$db)) {
             echo(
    "Could not select database"); // Невыбрана база
        
    }
    }
    // MySQL Query
    $sql "SELECT `id` , `name` , `start_date` FROM `xz` ORDER BY `id`"// Запрос
    // Send Query
    $res mysql_query($sql$db); // Посылка запроса
    if (/*$rows_count =*/ @mysql_num_rows($res) > 0// Кол-во записей в таблице
    {
        while (
    $result mysql_fetch_array($res))
        {
          
    $row1 $result['name'];
          
    $row2 $result['name2'];
          if (
    $i == $rows_count){
            echo(
    "<a href='index.php?page=$row1'>$row2</a>");
          } else {
            echo(
    "<a href='index.php?page=$row1'>$row2</a><br/>");
          }
          
    //$i++;
        
    }
    } else {
        echo(
    "<p>Нет данных.</p>");
    }
    // End work
    mysql_free_result($res); // Освобождает память от результата запроса
    mysql_close($db); // Закрытие соединение.
     
    #5418 PandoraBox, 15 Sep 2008
    Last edited: 15 Sep 2008
    1 person likes this.
  19. Doom123

    Doom123 Elder - Старейшина

    Joined:
    11 Nov 2006
    Messages:
    749
    Likes Received:
    244
    Reputations:
    22
    PandoraBox && @mysql_num_rows($result) > 0 что за бред ? оО

    цикл просто не выполнится если там не будет результата ....
     
    2 people like this.
  20. xxxxxxxxxxxxxxx

    xxxxxxxxxxxxxxx Elder - Старейшина

    Joined:
    20 Jan 2008
    Messages:
    66
    Likes Received:
    8
    Reputations:
    0
    начил потехоньку учить ООП и возьник вопрос
    PHP:
    $x1 =(int) $_GET ["x1"];$y1 = (int)$_GET ["y1"];
    $x2 =(int) $_GET ["x2"];$y2 = (int)$_GET ["y2"];




    class 
    VectClass()
    {
    //--------------косинус угла между векторами---------
             
    function cos_vect(($x1,$y1,$x2,$y2)
                      {
                      
    $exp_x1 exp($x1,2);
                      
    $exp_x2 exp($x2,2);
                      
    $exp_y1 exp($y1,2);
                      
    $exp_y2 exp($y2,2);
                      
    $AB=$x1*$x2+$y1*$y2;
                      
    $modul sqrt(($exp_x1 $exp_y1)*($exp_x2 $exp_y2));
                      
    $cos $AB/$modul;
                      echo 
    "Косинус угла векторов A и B равен $cos ";
                      }
    }
    код принемает с формы координаты как мне их передать в клас, а патом сделать так чтоб он выдал мне ответ..
     
    #5420 xxxxxxxxxxxxxxx, 16 Sep 2008
    Last edited: 16 Sep 2008
Thread Status:
Not open for further replies.