За последние 24 часа нас посетили 20298 программистов и 1726 роботов. Сейчас ищут 2179 программистов ...

Chunked Transfer-Encoding & Upload, php 4.3.11

Тема в разделе "Прочие вопросы по PHP", создана пользователем Vladimir35, 1 май 2006.

  1. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    У меня возникла следующая проблемма: при загрузке(upload) файлов методом POST как multipart/form-data при использовании Chunked Transfer-Encoding переменная $_FILES на принимающей стороне остается пустой... php 4.3.11.

    При использовании пхп 5 версии этой проблемы не возникает...

    Может кто-то сталкивался? Подскажите хотя бы в каком направлении искать проблему...
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    на phpclub.ru ты хоть кусок кода привел, что ж нас так обидел?
    http://phpclub.ru/talk/showthread.php?s ... 777&rand=0

    мы не злопамятные, только злые и память хорошая. но в принципе мы не об этом ...

    1. а можно полюбопытствовать зачем такой изврат?
    2. к сожалению сижу на 5.1.2 http://440hz.ru/phpinfo.html потестить прямо сейчас не могу. будет насущно - пиши. что-нить придумаем.
    3. попробуй

    POST http://440hz.ru/trash/upload/ HTTP/1.1

    и скорми туда свои данные. что выдаст?

    ---

    ой! ну так, на вскидку. покажи register_globals на 4 конфиге? сдается мне, что сравнение конфигов даст понимание почему не пашет.
     
  3. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Зачем сразу изврат, дарагой? Мобильный телефон - знаешь? Новый мобильный телефон - знаешь? Nokia, Siemens, Sony Ericsson - знаешь?
    Так вот они все и Nokia, и Siemens, и Sony Ericsson все, что больше 2 кб, отправляют в Chunked Transfer Encoding... Теперь представьте, что нужно зааплоадить файл на сервер... Не знаешь?! Ай-яй-яй.

    Вопрос очень актуален. Более того, ответа на этот вопрос в бескрайнем интернете тоже нет...

    Так, это уже более конструктивно - сейчас попробую/покажу.
    Версия php
    http://82.110.105.14/everythinglucino.com/wc/info.php

    дефолтное OFF


    PS: Да, еще надо уточнить, что при отсылке POST-ом без Chunk-ов все успешно отправляется.
     
  4. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Вы не могли бы "file" на "userfile" поменять.(я в ручную пакеты делаю)

    Пакет такой отсылается
    http://www.mobile-mir.com/vladimir/aga4.txt
    Вот этим скриптом
    http://www.mobile-mir.com/vladimir/t8.php
    (у меня вообще подвисает - так как, вероятно, сервер не отвечает - у меня просто все вычитывается)

    Сайт с проблемой
    http://www.mobile-mir.com/vladimir/t7.php

    Как должно быть
    http://www.mobile-mir.com/vladimir/t6.php


    <?
    echo "privet<br><br><pre>";
    $filename="aga4.txt";
    $mf=fopen($filename,"r");
    $mfi=fread ($mf, filesize ($filename));
    echo $mfi;
    fclose($mf);
    echo "privet<br><br>";
    $host="440hz.ru";
    $path="/trash/upload/";
    $port=80;

    $fp = fsockopen($host, $port, $errno, $errstr);
    if (!$fp)
    {
    echo "errno: $errno \n";
    echo "errstr: $errstr\n";
    exit;
    }
    fputs($fp,$mfi);


    while (!feof($fp)) {
    $buffer = fgets($fp, 1024);
    echo $buffer;
    }

    fclose($fp);
    echo "</pre>";
    ?>
     
  5. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    1. что ОЧЕНЬ смущает Server API CGI. 5 то же в CGI моде или встроена в Apache? Это важно ...


    давай для тестов я подниму тебе какой-нить тестовый скриптик на 4. там и потестишь? Хошь?
     
  6. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Не знаю. Готов потестить - bobax at mail dot ru
     
  7. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    переделал. пробуй.
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    тести. там стоит 5. если там прокатит бум тестить на 4.
     
  9. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Скрипт не получает вообще ни какого ответа :shock: Может порт не правильный(80)? Не посмотрите отсылающий скрипт(выше)?
     
  10. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    давай-ка напишем обычный отладочный скрипт и потестим его на 4 и 5? Всем от этого будет польза?

    ты на phpclub приводил куски GET зпроса или POST а не пормню.

    зашли его мне ВЕСЬ на мыло?

    440hz@php.ru
     
  11. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Двумя руками за. Все послал.
     
  12. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    все отвечено
     
  13. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Так, я правильно понял: на пятом пхп - все пучком?!

    Что делать с четвертым? в каком направлении ковырять?


    Спасибо за помощь. :D
     
  14. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    на 4 тоже все пучком.

    главное НЕ забывать про
    Connection: close

    Код (Text):
    1.  
    2. gw(440hz):~$>telnet 440hz.expi-web.ru 80
    3. Trying 82.140.81.242...
    4. Connected to 440hz.expi-web.ru.
    5. Escape character is '^]'.
    6. POST /trash/upload/ HTTP/1.1
    7. Content-Type: multipart/form-data; boundary=---------------------------7d6129a360214
    8. Transfer-Encoding: chunked
    9. Connection: close
    10. Host: 440hz.expi-web.ru
    11.  
    12. 1dd
    13. -----------------------------7d6129a360214
    14. Content-Disposition: form-data; name="MAX_FILE_SIZE"
    15.  
    16. 130000
    17. -----------------------------7d6129a360214
    18. Content-Disposition: form-data; name="userfile"; filename="C:\wm_rek.txt"
    19. Content-Type: text/plain
    20.  
    21. PC2100 128MB (PA3126U-1M12)
    22. PC2100 256MB (PA3127U-1M25)
    23. PC2100 512MB (PA3164U-1M51)
    24.  
    25. WMID 238296476062
    26.  
    27. Z136834712117
    28. U260936985028
    29. R422654388113
    30. E298958947159
    31.  
    32. -----------------------------7d6129a360214--
    33.  
    34.  
    35.  
    36. 0
    37.  
    38. HTTP/1.1 200 OK
    39. Date: Tue, 02 May 2006 11:32:07 GMT
    40. Server: Apache
    41. X-Powered-By: PHP/4.4.2
    42. Content-Length: 301
    43. Connection: close
    44. Content-Type: text/html
    45. Content-Language: ru
    46.  
    47. <pre>Array
    48. (
    49.     [name] => wm_rek.txt
    50.     [type] => text/plain
    51.     [tmp_name] => /var/tmp/phpZk4C3o
    52.     [error] => 0
    53.     [size] => 170
    54. )
    55. <html>
    56. <body>
    57. <form method=POST ENCTYPE='multipart/form-data'>
    58. <input type=file name=file>&nbsp;<input type=submit value=" загрузить">
    59. </form>
    60. </body>
    61. </html>Connection closed by foreign host.
    62. gw(440hz):~$>php -v
    63. PHP 4.4.2 (cli) (built: Jan 20 2006 18:47:30)
    64. Copyright (c) 1997-2006 The PHP Group
    65. Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
     
  15. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Хм... Я уже убирал-добавлял "Connection: close" - не помогало. Сейчас еще раз проверю.
     
  16. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    руками-то все работает. глвное установили. теперь ищем свои ошибки ...
    8)
     
  17. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    Не работает :cry: Точнее - у меня там, где надо, не работает...
    http://www.mobile-mir.com/vladimir/t7.php
     
  18. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    положи там

    <?

    if(isset($_FILES['userfile'])) {
    print('<pre>');
    print_r($_FILES['userfile']);
    }

    ?>
    <html>
    <body>
    <form method=POST ENCTYPE='multipart/form-data'>
    <input type=file name=file>&nbsp;<input type=submit value=" çàãðóçèòü">
    </form>
    </body>
    </html>

    и дай ссылку?
     
  19. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
  20. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    http://82.110.105.14/everythinglucino.com/wc/upload.php

    это тот скрипт который я тебе дал? ПОЛОЖИ ТУДА ИМЕНО ТО ЧТО Я ДАЛ


    вернее это

    <?

    if($_SERVER["REQUEST_METHOD"] == 'POST') {
    print('<pre>');
    print_r($GLOBALS);
    }

    ?>
     
  21. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    ЕСТЬ!
    http://82.110.105.14/everythinglucino.com/wc/up01.php

    <?

    if($_SERVER["REQUEST_METHOD"] == 'POST') {
    print('<pre>');
    print_r($GLOBALS);
    }

    ?>
     
  22. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    гм. не пашет! даже и не знаю что сказать. 8((( бум думать!
     
  23. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    о! отключи-ка ZendOptimizer? Помнится былы какие-то траблы именно с влюченным Zend!

    можешь такое устроить?
     
  24. Vladimir35

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

    С нами с:
    1 май 2006
    Сообщения:
    19
    Симпатии:
    0
    А как? И скорее всего нет...

    Дело в том, что в ПХП я "новичок".

    Не большой оффтопик - а я могу как-нибудь получить необработанный поток, что-то типа stdin, чтобы самому обработать входящий ПОСТ?
     
  25. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    Vladimir35
    сервак кто админит?