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

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

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

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    svesve Добавить скрытое поле fio которое не будет редактироваться || использовать сессионные переменные || добавить в sql UPDATE-запрос `fio_old`=`fio`

    Все переменные после завершения вывода страницы - высвобождаются, и в преведенном вами коде, я, например, не увидел где вы "сохраняете в переменной" значение предыдущего ПОСТа.

    Корвин Код не читабелен почти. И непонятно где задается $num_children. Попробуйте внутри цикла выводить не только $i но и переменную условия, возможно внутри класса Ax_Content вы ее меняете.

    PHP:
    $num_children=12;
    for (
    $i=0$i<$num_children$i++) {
            echo 
    '<hr/>'.$i.'-'.$num_children.'<hr/>'; continue;

    //и т.д. ваш код
    Это естественно вывело все 12 строчек. Аналогично попробуйте c/без continue; для вашего класса
     
    _________________________
    #8121 Gifts, 3 Feb 2009
    Last edited: 3 Feb 2009
  2. kraken

    kraken Member

    Joined:
    2 Jan 2009
    Messages:
    74
    Likes Received:
    75
    Reputations:
    5
    Корвин убери break и отпиши (По скрипту вижу что это неповлияет на результат а только на время выполнения.)
     
  3. Корвин

    Корвин Elder - Старейшина

    Joined:
    26 Feb 2007
    Messages:
    256
    Likes Received:
    31
    Reputations:
    3
    Gifts, уже выводил $num_children на каждом шаге , идет 0 - 12 - 1 - 12 - 2 - 12 - 3 - 12 - 4 и потом обрубается

    kraken, break пробовал убирать, никакого эффекта
     
  4. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Корвин Вместо $num_children в файле напишите число большее 4. Если все равно будет останавливаться, то перемещайте строку
    PHP:
     echo '<hr/>'.$i.'-'.$num_children.'<hr/>';
    вниз по коду и ищите после какого вызова остановка (ака будет тройка вместо четверки последним результатом)
     
    _________________________
    2 people like this.
  5. Chrek625

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

    Joined:
    6 Jun 2006
    Messages:
    143
    Likes Received:
    13
    Reputations:
    -7
    знатаки подскажите мне по моей проблеме

    Доброго всем времени суток.
    Подскажите пожалуйста заступорился на одной баге и не могу понять как исправить:
    ошибка Cannot re-assign $this in Shop.php

    а вот фрагмент с переменной $this

    PHP:
    function get($objectId=null) {
        if (
    $objectId == 0) return false;
            if (
    parent::get($objectId)) {
    //                     echo "in get clinic, $objectId, ".get_class($this)."<br>";

                
    if ($this->getVariable('type') == 'comission' and get_class($this)!='comissionshop') {
                    
    $newShop = new ComissionShop();
                    if (
    $newShop->get($objectId)) {
                        
    $this $newShop; <<-- строчка в которой ошибка
                $this
    ->getCrncyDst();
                        return 
    true;
                    }
                    return 
    false;
                }
    подскажи как это исправить просто моих знаний не хватает что бы разобраться с этим... буду боагодарен любой помощи или подсказке...
    Зарание большое спасибо.


    http://ifolder.ru/10356035 полный файл.
     
    1 person likes this.
  6. preda1or

    preda1or Member

    Joined:
    27 Oct 2008
    Messages:
    167
    Likes Received:
    96
    Reputations:
    6
    Chrek625
    уже обсуждалось раньше, ищи в пред. постах
    P.S.
    а вообще:

    P.P.S. из первой цитаты
     
  7. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    self::$this - возвратить себя
    &self::$this - возвратить себя по ссылке
    __CLASS__ - имя класса
     
    #8127 Chaak, 3 Feb 2009
    Last edited: 3 Feb 2009
    2 people like this.
  8. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Уважаемое сообщество помогите плз вот код суть в том что есть массив с набором строк нужно проверить сколько включений заданного слова входит в массив, использую foreach выдает мне Invalid argument supplied for foreach()
    вот код
    Code:
    <?
    $f=fopen('key.txt','r') or die ("Ощибка открытия файла");
    $key=array();
    while(!feof($f)){
    $key.=fgets($f);
    }
    fclose($f);
    $words=explode(" ",$key);
    
    for($j=1;$j<sizeof($words);){
    for($i=1;$i<sizeof($words);){
    trim($words[$i]);
    trim($words[$j]);
    echo $words2[]=$words[$j].' '.$words[$i]."<br>";
    
    $i++;
    }
    $j++;
    }
    $iz=0;
    foreach($dwords2 as $val=> $key){
    
    if(strpos($key,"retro"))
    $iz++;
    
    }
    echo sizeof($words2);
    echo "<br>".$iz;
    $f=fopen('result.txt','w') or die(" Не могу открыть файл");
    foreach($words2 as $k=>$val){
    trim($val);
    fwrite($f,$val);
    
    }
    fclose($f);
    ?>
    
     
  9. blaga

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

    Joined:
    23 Mar 2006
    Messages:
    884
    Likes Received:
    273
    Reputations:
    106
    foreach($dwords2 as $val=> $key){
    а везде $words2
     
    1 person likes this.
  10. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Во-во, будет так:
    PHP:
    <?
    $f=fopen('key.txt','r') or die ("О[B]ш[/B]ибка открытия файла");
    $key=array();
    while(!
    feof($f)){
    $key.=fgets($f);
    }
    fclose($f);
    $words=explode(" ",$key);

    for(
    $j=1;$j<sizeof($words);){
    for(
    $i=1;$i<sizeof($words);){
    trim($words[$i]);
    trim($words[$j]);
    echo 
    $words2[]=$words[$j].' '.$words[$i]."<br>";

    $i++;
    }
    $j++;
    }
    $iz=0;
    foreach(
    $words2 as $val=> $key){
     if(
    strpos($key,"retro"))
      
    $iz++;
    }
    echo 
    sizeof($words2);
    echo 
    "<br>".$iz;
    $f=fopen('result.txt','w') or die(" Не могу открыть файл");
    foreach(
    $words2 as $k=>$val){
    trim($val);
    fwrite($f,$val);

    }
    fclose($f);
    ?>
    Также распостраненная ошибка с foreach - перепутывания местами переменных.
     
  11. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    PHP:
    <?php

    $arr 
    = array('1','1','1','2','5');
    $what '1';



    function 
    array_count_element(&$array$element$reg false)
    {
        
    $all 0;
        
        if(
    $reg)
               
    $element strtolower($element);
        
        foreach(
    $array as $elem)
        {
            if(
    $reg)
                
    $elem strtolower($elem);
            if(
    $elem == $element)
                
    $all++;
        }
        return 
    $all;
    }

    echo 
    array_count_element($arr$what);

    P.S вы, что траванулись такой трэш писать?
     
  12. Gin

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

    Joined:
    11 Sep 2008
    Messages:
    133
    Likes Received:
    7
    Reputations:
    4
    Огромное спс я уже не знаю что бы я делал без всех Вас!
     
  13. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    thx to Chaak
     
    #8133 mailbrush, 3 Feb 2009
    Last edited: 3 Feb 2009
  14. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    \r\n после каждого заголовка, после последнего \r\n\r\n
     
  15. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    Чакус, не только. (Content-Length ? :D )
    Мылокисть, лови готовую фичу post-sock
    PHP:
    function post($ip$port 80$path$zapros$cookie){ 
        
    $res="";
        
    $sock=fsockopen($ip,$port$errno$errstr30); 
        
        if(!
    $sock){ 
            echo 
    $errstr($errno); 
        } else { 
            
    $headers  ="POST $path HTTP/1.0\r\n"
            
    $headers .="Host: rambler.ru\r\n"
            
    $headers .="User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.8.1.14)\r\n"
            
    $headers .="Accept-Language: ru,ru-RU;q=0.9,en;q=0.8\r\n"
            
    $headers .="Cookie: $cookie\r\n";
            
    $headers .="Pragma: no-cache\r\n";
            
    $headers .="Content-Type: application/x-www-form-urlencoded\r\n";
            
    $headers .="Content-Length: " strlen($zapros) . "\r\n";
            
    $headers .="Connection: Close\r\n\r\n";
            
    $headers .=$zapros;
        } 
        
    fwrite($sock$headers); 
        while(!
    feof($sock)){ 
            
    $res .=fgets($sock1024); 
        } 
        return 
    $res
    }
    Юзается в туче реггеров )
     
  16. AFoST

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

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    PHP:
    $out =
        
    "POST / HTTP/1.0\r\n".
        
    "Host: localhost.ua\r\n".
        
    "Connection: close\r\n".
        
    "Referer: 2ip.ru/\r\n".
        
    "User-Agent: Opera\r\n".
        
    "Content-type: application/x-www-form-urlencoded\r\n".
        
    "Content-Length: ".strlen("var1=val1&var2=val2")."\r\n".
        
    "\r\n\r\n".
        
    "var1=val1&var2=val2";
    AFoST add
    mailbrush, вообще не прикольно, когда ты спрашиваешь, а потом посты свои удаляешь =\
     
    #8136 AFoST, 3 Feb 2009
    Last edited: 3 Feb 2009
    1 person likes this.
  17. Chaak

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

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    AFoST, post-запрос в теле доллжен быть, т.е после \r\n\r\n

    vikseriq, когда нет Post-данных, content-length не обязателььна
     
    2 people like this.
  18. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Есть сайт. на нем есть поле, имя которого name. мне надо ввести туда john и вывести на экран результат... Думаю эту работу надо через fsockopen, но я с ним не очень дружу, пока на парсерах тернируюсь...
     
    1 person likes this.
  19. AFoST

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

    Joined:
    28 May 2007
    Messages:
    588
    Likes Received:
    485
    Reputations:
    176
    да я знаю) у меня прост кусок кода точь-в-точь как этот, но с ооп. я на быструю руку в блокноте криво исправил.
    у меня такой вот был:
    PHP:
    $this->request =
        
    "POST http://".$this->host.$this->pathFile." HTTP/1.0\r\n".
        
    "host: ".$this->host."\r\n".
        
    "Connection: close\r\n".
        
    "Content-type: application/x-www-form-urlencoded\r\n".
        
    "Content-Length: ".strlen($this->var)."\r\n".
        
    "\r\n".
        
    $this->var;
     
    #8139 AFoST, 3 Feb 2009
    Last edited: 4 Feb 2009
  20. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    rushter,
    Code:
    <form action="" method="post">
    <b>Nick:</b> <input name="name" type="text" value="">
    </form>
     
Thread Status:
Not open for further replies.