За последние 24 часа нас посетили 17399 программистов и 1288 роботов. Сейчас ищут 1615 программистов ...

Автоматическая отправка данных в форму

Тема в разделе "PHP для новичков", создана пользователем Biopengwin, 29 фев 2016.

  1. Biopengwin

    Biopengwin Новичок

    С нами с:
    9 ноя 2015
    Сообщения:
    15
    Симпатии:
    0
    Надо скормить файл обработчику формы. Форма выглядит так:

    Код (PHP):
    1. <html>
    2. <meta HTTP-EQUIV="Content-Type" Content="text/html; charset=windows-1251">
    3. <title>Отправка данных в НБКИ</title> 
    4.  
    5. </head>
    6.  
    7. <body>
    8.  
    9. <form action="/inout/cgi-bin/upload.cgi" method="POST" ENCTYPE="multipart/form-data">
    10. <table align="center" border=0 cellspacing=0 cellpadding=10 width="430">
    11. <b>ОТПРАВКА ДАННЫХ</b>
    12. <tr>
    13. <td><font face="verdana" size=2>Отправляемый файл данных:</font></td>
    14. <td><input type="FILE" name="file1"></td>
    15. <td><input type="hidden" name="pathnm" value="uploads"></td>
    16. </tr>
    17. <tr>
    18. <td><br></td>
    19. <td><input type="SUBMIT" value="ОТПРАВИТЬ" style="cursor:hand;"></td>
    20. </tr>
    21. </table>
    22. </form>
    23.  
    24. </body>
    25. </html> 
    Мой скрипт выглядит так:

    Код (PHP):
    1. $file = file_get_contents('/path/to/file.txt');
    2. $file = mb_convert_encoding($file, 'Windows-1251', 'UTF-8');
    3. $postdata = array(
    4.     'file1' => $file,
    5.     'pathnm' => 'uploads'
    6. );
    7.  
    8. $postdata = http_build_query($postdata);
    9. $opts = array('http' =>
    10.     array(
    11.         'method'  => 'POST',
    12.         'header'  => 'Content-type: multipart/form-data',
    13.         'content' => $postdata
    14.     )
    15. );
    16.  
    17. $context  = stream_context_create($opts);
    18. $result = file_get_contents('http://example.com/inout/cgi-bin/upload.cgi', false, $context);
    19. echo $result;
    Что я делаю не так? Header ведь такой надо ставить?
     
  2. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    А что происходит?
     
  3. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    воу воу воу, ты уверен?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
  5. Biopengwin

    Biopengwin Новичок

    С нами с:
    9 ноя 2015
    Сообщения:
    15
    Симпатии:
    0
    А ничего не происходит, я не получаю никакого ответа. Форма не моя, она пренадлежит одной полу-государственной конторе, у которых всё работает по ГОСТам года 95го. Документации по автоматической отправки у них нет, вроде такого раньше никто у них не делал. Вот и попробуй разберись почему их сервер не принимает мой запрос... Я ж всё правильно вроде сделал?
     
  6. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.770
    Адрес:
    :сердА
    Стоп. Ты к ним пытаешься стучаться чтоль? Тогда мб курлом лучше?
     
  7. Biopengwin

    Biopengwin Новичок

    С нами с:
    9 ноя 2015
    Сообщения:
    15
    Симпатии:
    0
    А какая разница?
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    заголовки смотри в браузере и сравнивай со своими.
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Biopengwin, не думай всерьез, что кто-то будет за тебя отлаживать.

    Ты пробовал сравнить свой вызов с тем, на который я тебе ссылку дал? Тот рабочий, только параметры подставь свои.
     
  10. Biopengwin

    Biopengwin Новичок

    С нами с:
    9 ноя 2015
    Сообщения:
    15
    Симпатии:
    0
    Тут тоже проблемка. Страница открывается только в IE6 и только при наличии необходимых сертификатов.) Ладно, буду перебирать всё подряд.
     
  11. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    В cURL можно указать сертификат
     
  12. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Помоему теме место в разделе "Неведомая уйня". Где тут возможность применить мозги?
     
  13. Biopengwin

    Biopengwin Новичок

    С нами с:
    9 ноя 2015
    Сообщения:
    15
    Симпатии:
    0
    Не, на сервере с которого я отправляю - всё нормально с сертификатами. Там стоит плагин на Apache, который проксирует запрос куда надо, предварительно его подписав. Но в браузере я не могу открыть эту страницу, чтобы сравнить заголовки.

    Добавлено спустя 32 секунды:
    Ну перенесите.) Я топик создал в надежде, что я совсем тупой и где-то допустил банальную ошибку.
     
  14. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.112
    Симпатии:
    1.244
    Адрес:
    там-сям
    Может и так. А может целевой сайт отфутболивает запросы, не соответствующие неизвестным нам критериям. Выясни это.
    Как в браузере выглядит реакция на неправильный / неполный набор полей? Ну, допустим, если ты файл забыл указать. Имитируй это програмно и посмотри есть ли КАКАЯ-ТО реакция.

    Когда пишут "ничего не происходит" это сильно подозрительно. Что-то всегда происходит, только смотреть надо внимательно. Ты программер или ты Мариванна из бухгалтерии у которой "всё сломалось"? Отлаживайся.

    Добавлено спустя 4 минуты 17 секунд:
    Кстати: Когда мне Хром пишет "неверный клиентский сертификат" я знаю, что это файрвол зарезал запрос https к подозрительному сайту. Может твой файрвол настроен делать для IE6 исключение? Мало данных.