[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
    Alekzzzander
    PHP:
    for($i=0;$i<$ni;$i++)
    {
    // Если не существует временного файла - то в это поле ничего не вводилось, поэтому пропускаем этот элемент
    if (!isset($_FILES['img']['tmp_name'][$i]) || $_FILES['img']['tmp_name'][$i]==='') continue;
    // Файл с индексом $i - передавался, можем совершать остальные проверки

    }
     
    _________________________
    #16081 Gifts, 5 Aug 2010
    Last edited: 5 Aug 2010
  2. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Привет.
    Помогите сделать.
    Вот код картинки.
    Code:
    <img id=1 class="thumbNormal" src="3lio103.jpg" width=120 onclick="SelectImg(1)">
    
    Мне нужно сделать так что бы когда было 4 картинки то им присваивался автоматом (ID) и (SelectImg(1)) т.е

    я вывожу из DB 4 картинки и должно плучиться так

    Code:
    <img id=1 class="thumbNormal" src="3lio103.jpg" width=120 onclick="SelectImg(1)">
    <img id=2 class="thumbNormal" src="3lio103.jpg" width=120 onclick="SelectImg(2)">
    <img id=3 class="thumbNormal" src="3lio103.jpg" width=120 onclick="SelectImg(3)">
    <img id=4 class="thumbNormal" src="3lio103.jpg" width=120 onclick="SelectImg(4)">
    
     
  3. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    PHP:
    $i=1;
    while(
    $i<5)
    {
      
    preg_replace("#id=\d#","id=$i",$image);
      
    preg_replace("#SelectImg\(\d\)#","SelectImg($i)",$image);
      
    $i++;
    }
     
    #16083 SHiNiGaMi, 5 Aug 2010
    Last edited: 5 Aug 2010
  4. DeluxeS

    DeluxeS Member

    Joined:
    1 Aug 2009
    Messages:
    7
    Likes Received:
    81
    Reputations:
    19
    Не актуально
     
    #16084 DeluxeS, 5 Aug 2010
    Last edited: 7 Aug 2010
  5. SHiNiGaMi

    SHiNiGaMi Banned

    Joined:
    3 Jan 2010
    Messages:
    382
    Likes Received:
    55
    Reputations:
    15
    просто бота на php написать без шелла не вариант?
     
  6. Xantalion

    Xantalion New Member

    Joined:
    16 Feb 2008
    Messages:
    26
    Likes Received:
    1
    Reputations:
    3
    Подскажите как можно разбить число, на набор цифр (в массив)?
    например такое: 78.6568
    еще нужно округлить до 2 знаков после точки.

    Подскажите если не трудно.
     
    #16086 Xantalion, 5 Aug 2010
    Last edited: 5 Aug 2010
  7. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    возможно я перегрелся, но как чёрт побери это условие выполняется??

    PHP:
    <?php
    $test 
    0;
    $tStr "test str";

    if(
    $test == $tStr)
     echo 
    'damn';
    php 5.2.14

    ведь:
     
    #16087 Дикс, 5 Aug 2010
    Last edited: 5 Aug 2010
  8. Catbert

    Catbert Banned

    Joined:
    29 Jun 2010
    Messages:
    80
    Likes Received:
    27
    Reputations:
    10
    Все выполняется согласно таблице
    http://php.net/manual/en/types.comparisons.php
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Дикс Добро пожаловать в мир "прекрасного" пхп http://www.php.net/manual/en/types.comparisons.php
     
    _________________________
  10. Xantalion

    Xantalion New Member

    Joined:
    16 Feb 2008
    Messages:
    26
    Likes Received:
    1
    Reputations:
    3
    Подскажите просто хотябы возможно ли число любое например 3472955 (если это уже переменная такая)
    вбить в массив по цифрам a[0] = 3, a[1] = 4, a[2] = 7... и т.д. не могу найти может это вообще не реально сделать ^_^

    (пардон вначале бред написал :p )
     
    #16090 Xantalion, 5 Aug 2010
    Last edited: 5 Aug 2010
  11. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    вот жеж..
    и почему я считаю нелогичным считать непустую строку false?
     
  12. apolon47

    apolon47 Banned

    Joined:
    13 Apr 2009
    Messages:
    119
    Likes Received:
    14
    Reputations:
    4
    PHP:
    $text 'ololosha'
    $lenght strlen($text);  
    $array = array();  

    for(
    $i=0$i<$lenght$i++){   
     
    //$array[] = substr($text, $i, 1);  
     
    $array[] = $text{$i};
    }  

    print_r ($array);
     
    #16092 apolon47, 5 Aug 2010
    Last edited: 5 Aug 2010
  13. Xantalion

    Xantalion New Member

    Joined:
    16 Feb 2008
    Messages:
    26
    Likes Received:
    1
    Reputations:
    3
    Спасибо olishort
    возник новый вопрос.
    Как можно внести через php в базу mysql значение с запятой (34,345)
    При занесении он распознает это как два значения 34 и 345...т.е А мне нужно именно с запятой, что тут сделать чтоб он распозвнавал как одно целое.
     
  14. apolon47

    apolon47 Banned

    Joined:
    13 Apr 2009
    Messages:
    119
    Likes Received:
    14
    Reputations:
    4
    PHP:
    INSERT INTO `table` ( `column1` ,  `colimn2`) VALUES ('1,33''2,33');
     
  15. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Дикс Вы неправильно понимаете, что происходит при сравнении. По вашей логике, если все переменные приводятся к типу boolean любые непустые строки должны быть равны.

    Здесь же имеет место неявное приведение типов. Приоритет чисел выше чем строк, поэтому строка "test str" приводится к числу (что эквивалентно intval("test str")). Например такая штука выведет 'test2', но не 'test1':
    PHP:
    $test 0;
    $tStr "1234test str";
    if(
    $test == $tStr)
     echo 
    'test1'

    $test 1234;
    $tStr "1234test str";

    if(
    $test == $tStr)
     echo 
    'test2'
    Xantalion
    PHP:
     $number 1234125;
    $a str_split((string) $number);
    var_dump($a);
     
    _________________________
  16. Xantalion

    Xantalion New Member

    Joined:
    16 Feb 2008
    Messages:
    26
    Likes Received:
    1
    Reputations:
    3
    Спасибо olishort, Gifts
    подхожу к кулминации)
    такая проблема - Есть таблица items в ней столбец K, в котором нужно заменить старые значения на новые, но не выходит что-то) если вы ковычках '$rowk' это во всех строках вводит одно число случайное)

    PHP:
        while ($row mysql_fetch_array($data)) 

           
    $row round($row['K'], 2);
           
    $rowk str_replace('.',','$row); 
           
    $res"UPDATE items SET K = $rowk";    
           
    mysql_query($res)                     
    }
     
  17. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Xantalion вам показали что надо заключать данные в кавычки это раз, во вторых если что-то не работает - делайте вывод ошибок
     
    _________________________
  18. Xantalion

    Xantalion New Member

    Joined:
    16 Feb 2008
    Messages:
    26
    Likes Received:
    1
    Reputations:
    3
    все я вдул в эту тему, дошло как сделать)

    и всетаки мне интересно как здесь id по порядку брать...

    PHP:
     while ($row mysql_fetch_array($data))  
    {  
           
    $row round($row['K'], 2); 
           
    $rowk str_replace('.',','$row);  
           
    $res"UPDATE items SET K = '$rowk' where id = $row[?]";     
           
    mysql_query($res)                      

    я сделал так
    PHP:
          for($i=0;$i<$n;$i++) {
            
    $rowmr mysql_result($data,$i,K);
            
    $row round($rowmr2);
                      
    $rowk str_replace('.',','$row); 
                      
    $res"UPDATE items SET K = '$rowk' where id=$i";     
           
    mysql_query($res)  or die(mysql_error());    
        }    
     
    #16098 Xantalion, 5 Aug 2010
    Last edited: 5 Aug 2010
  19. Mixon

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

    Joined:
    12 Mar 2008
    Messages:
    394
    Likes Received:
    119
    Reputations:
    12
    Тебе в тему Уязвимости,а не программирование на PHP
    а если только PHPSESSID в куках,то врядли тебе они пригодятся...
    А брут мона или самописный сделать или общеюзаемые пробовать настроить
     
  20. Stalingrad

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

    Joined:
    17 Mar 2006
    Messages:
    49
    Likes Received:
    4
    Reputations:
    0
    Привет, искал инфу про работу с сокетами (fsockopen) , нашел скрипт от mr.The , хотел спросить кое что
    :
    PHP:
    <?php
    set_time_limit
    (0);

    ob_implicit_flush();

    //
    //mr.The (C)
    //

    /**
    Функция получения страницы с использованием сокетов
    **/
    function get_page($site$page$ref ''$cookie '',
                          
    $post ''$isheaders false$ua 'Opera 9.27 (compatible; MSIE 6.0; Windows NT 5.1; ru)')
        {
        
    $page  =trim($page);
        
    $site  =trim($site);
        
    $socket=fsockopen($site80$errno$errstr15);

        if (
    $socket)
            {
            if (
    $post != '')
                {
                
    $send="POST $page HTTP/1.0\r\n";
                
    $send.="Content-Length: " strlen($post) . "\r\n";
                
    $send.="Content-Type: application/x-www-form-urlencoded; charset=utf-8\r\n";
                }
            else
                
    $send="GET $page HTTP/1.0\r\n";

            
    $send.="User-Agent: $ua\r\n";
            
    $send.="Host: $site\r\n";
            
    $send
                
    .="Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";

            if (
    $ref != '')
                
    $send.="Referer: $ref\r\n";

            if (
    $cookie != '')
                {
                
    $send.="Cookie: $cookie\r\n";
                
    $send.='Cookie2: $Version=1' "\r\n";
                }

            
    $send.="Accept-Language: ru,en;q=0.9,ru-RU;q=0.8\r\n";
            
    $send.="Connection: close\r\n\r\n" $post;

            if (
    fputs($socket$send))
                {
                if (!
    $isheaders)
                    while (
    fgets($socket1024) != "\r\n" && !feof($socket))
                        ;

                
    $he="";

                while (!
    feof($socket))
                    {
                    
    $he.=fread($socket10240);
               
    /*     $stream_meta_data=stream_get_meta_data($socket);

                    if ($stream_meta_data['unread_bytes'] <= 0)
                        break;    */   // Здесь я добавил,только не знаю надо ли
                    
    }
                }

            
    fclose($socket);
            }

        return 
    $he;
        }
    ?>
    Конкретно меня интересуют следующие места :

    1) ob_implicit_flush(); - зачем ? Видел много примеров и без этого

    2) Почему в конце header-а надо ставить \r\n\r\n , а до этого \r\n , вообще зачем они там

    3) while (fgets($socket, 1024) != "\r\n" && !feof($socket))
    $he="";

    Везде видел примеры без ' !="\r\n" ' , а здесь почему то проверяются , также что происходит во время всего цикла - тоесть зачем $he=""; ?

    4) Читая php.net увидел что один чел говорит что while (!feof($socket)) [<--которая в самом конце,когда уже читаю с сокета] бывает зависает (бесконечный loop) , и предложил добавить в скрипт вот такое :
    $stream_meta_data=stream_get_meta_data($socket);

    if ($stream_meta_data['unread_bytes'] <= 0)
    break;
    Типа если нечего уже читать,то break; , вопрос стоит так - стоит ли это добавлять в данную функцию (написанную mr.The) или while (fgets($socket, 1024) != "\r\n" && !feof($socket)) решает все проблемы ?

    Спасибо :rolleyes:
     
Thread Status:
Not open for further replies.