Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > file_get_contents and form submit


Автор: YahоО 19.10.2021, 12:50
Минимальный код php :
Код

$quer=file_get_contents("php://input");
header("Content-type: text/javascript");
echo "$quer";

если из html пытаться отправить запрос на сервер по адресу содержащему вышеприведенный код
с помощью тега form с method="post"  и enctype="multipart/form-data" - то ответа с сервера нету.

А если эту же форму из этого же html отправить на тот же сервер с помощью javascript fetch вместе с  headers:{"Content-Type": "form-data"} то сервер выдает ожидаемый правильный ответ.
Не могу понять разницу, почему в одном случае работает в другом нет,
и что надо сделать с обычной отправкой из html без всяких скриптов javascript чтобы все работало и приходил ответ сервера.

Казалось бы в обоих случаях все данные должны отправляться на сервер, причем в обоих случаях должны присутствовать Boundary разделители, 
т.к. и в html прописано указание  enctype="multipart/form-data",
и для fetch прописано про  headers:{"Content-Type": "form-data"},
но почему то сам html не справляется с задачей и на сервер ничего не приходит в таком запросе от простого тега form.

Автор: YahоО 20.10.2021, 13:55
То ли я вопрос нечетко сформулировал, или не в ту ветку форума написал,
то ли решения никто не знает, 
то ли объяснения просто не существует,
но ответа похоже не дождаться ))))

Автор: _zorn_ 20.10.2021, 23:38
Чего вы хотите добиться ?
Вы описали "я делаю так, но у меня не получается, что нужно ?"  smile 
Конечная цель какая ?


Цитата(YahоО @  19.10.2021,  19:50 Найти цитируемый пост)
Не могу понять разницу, почему в одном случае работает в другом нет,

Зависит от "принимающей" стороны. 
enctype="multipart/form-data" для файлов нужно.

Цитата(YahоО @  19.10.2021,  19:50 Найти цитируемый пост)
$quer=file_get_contents("php://input");
header("Content-type: text/javascript");
echo "$quer";

Ну а это реально дурость. Мы делаем все подряд лишь бы получилось как я хочу ?  Даже если мимо ?

Автор: YahоО 22.10.2021, 17:14
Странно даже, ведь я экономлю ваше время и не пишу здесь весь свой файл, а лишь конкретную точку с минимально необходимым количеством строк выполняющих определенную операцию, и из этого как бы следует что этих трех строчек вполне достаточно для понимания возникшей проблемы.
Чего хочу добиться - тоже как бы странный вопрос, потому что свой вопрос изложил достаточно ясно.
Конечная цель - из html отправить запрос на сервер и там его получить, и естественно обработать его на сервере, с единственным условием: обойтись без javascript.
Ну а это реально дурость - отчего же, стремление использовать html "по полной" не прибегая к костылям javascript сегодня уже называют дуростью?
Зависит от "принимающей" стороны - в приведенном примере принимающая сторона одна и та же, и не меняется специально, дабы исключить "варианты" и двоечтение.
enctype="multipart/form-data" для файлов нужно - мне именно так нужно принять запрос на сервере вместе с Boundary разделителями, потому мне так удобнее его обрабатывать.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)