Поля ввода типов file и hidden с одинаковыми именами

Valery Shostak

Новичок
Суть в том, что в POST-форме есть два инпута. У одного — type="file", у другого — hidden.
Имена при этом одинаковые.
После отправки формы, по идее, первый должен попасть в массив $_FILES, а второй — в $_POST.
На деле же оказывается, что $_POST возвращается пустой...
Почему так происходит?
Тестировал не nic.ru. На локальном Денвере всё пучком.
Пример в прикреплённом файле.
 

Вложения

  • 825 байт Просмотры: 8

С.

Продвинутый новичок
При чем тут nic.ru и Денвер, если отправку осуществляет браузер, как ему заблагорассудится?
 

Valery Shostak

Новичок
Две страницы с одинаковым кодом (одна на nic.ru, другая на Денвере) в одном и том же браузере дают разные результаты.
 

С.

Продвинутый новичок
Покажи, что ты получаешь в обоих случаях. В "сыром" и "готовом" виде.
 

newARTix

Новичок
Valery Shostak
есть очень старый анекдот на эту тему:
- Доктор, когда я делают так (показывает как) мне больно!
- Просто не делайте так!

Твоя ситуация противоречит стандартам. Не делай одинаковые имена у полей и все будет "пучком".
 

Valery Shostak

Новичок
newARTix, каким стандартам противоречит моя ситуация?
И, пожалуйста, не надо мне советовать, как нужно делать "правильно". Это я уж как-нибудь сам разберусь.
Вопрос не в том, правильно или неправильно. Вопрос в том, почему это может не работать и как сделать так, чтоб работало.
 

Фанат

oncle terrible
Команда форума
Ну, раз ты так хорошо разбираешься в том, как правильно, то расскажи, по какой идее "первый должен попасть в массив $_FILES, а второй — в $_POST".
Вместе обсудим.
 

newARTix

Новичок
Valery Shostak
ты уж определись, советовать или не советовать :D Разбирайся сам, не вопрос :)
 

Ragazzo

TDD interested
Фанат
затестил на локалке, так и получилось...один туда один туда...)у меня apache последний...и пых тоже 5.2.14
 

Valery Shostak

Новичок
Вопрос правильности здесь неуместен.
Этот пример работает. Это факт.
Но работает не везде. И я хочу понять, что на это влияет.
 

Фанат

oncle terrible
Команда форума
И я хочу понять, что на это влияет.
Это похвальное стремление.
Если именно разобраться, а не требовать, чтобы это сделали за тебя другие люди, которым данный вопрос неинтересен.

Что ты уже предпринял в этом направлении, кроме запуска скрипта в двух разных местах?
 

Valery Shostak

Новичок
Я и не требую. Возможно, так только кажется со стороны...
Если люди заходят в эту тему и что-то отвечают, значит этот вопрос им уже интересен.
Не вижу связи между своим вопросом и тем, что я уже предпринял в этом направлении, кроме запуска скрипта в двух разных местах.
 

Фанат

oncle terrible
Команда форума
А я вижу связь.
Поскольку кроме тебя такими извращениями никто не страдает, и вряд ли будет, то, скорее всего, тебе самому придется.
Для того, чтобы вопросом действительно заинтересовались, а не просто "зашли в тему и написали", он должен быть осмысленным.
В противном случае свое праздное любопытство придется удовлетворять самостоятельно.
 

Valery Shostak

Новичок
Нет ничего извращённого в использовании одинаковых имён для переменных в разных областях памяти.
$post['image'] = 'test.jpg'; $files['image'] = 'test.jpg'; — это тоже, по вашему, извращение?
Я изложил вопрос предельно ясно. Если остались какие-то вопросы по существу — готов ответить.
 

AmdY

Пью пиво
Команда форума
Valery Shostak
может быть так влияет включение register_globals, покажи код. кстати, я так же поступаю похожим образом, проблем не возникало.
 

Adelf

Administrator
Команда форума
Valery Shostak
"разные области памяти".. кажется понятно откуда пришел данный пациент. С++ или другие парасистемные программирования? :)

Валерий, да это извращение. Прежде чем сидеть и писать чушь, лучше посидеть и почитать как работают некоторые механизмы.
Файлы пересылаются в основном через POST. Так что записываешь ты все-таки две переменные в одну и ту же область памяти, выражаясь твоим языком.
Помоему в PHP есть такая настройка - куда скидывать пришедшие файлы. в массив $_FILES или оставлять их в $_POST. Возможно данная вещь и раскидывает эти два поля по разным массивам и благодаря этому и получается ваше извращение.
Тут очень много людей, которые разрабатывают реальные и большие проекты. Они знают, что нельзя опираться на такие вещи, которые противоречат здравому смыслу. Это всегда приводит к чему-то плохому в итоге. Поэтому тут саму эту идиотскую идею сразу принимают в штыки. Вам бы все-таки воспользоваться советами.
 

Духовность™

Продвинутый новичок
Нет ничего извращённого в использовании одинаковых имён для переменных в разных областях памяти.
извращение - это именовать одинаковыми именами поля формы типа input. Память тут не причем.
 

Valery Shostak

Новичок
AmdY, register_globals отключен в обоих случаях. Код — в прикреплённом файле в первом сообщении.
Adelf, спасибо за разъяснение. В моём случае, файлы скидываются именно в $_FILES. Получается, что эта настройка тут не при чём.
 
Сверху