2013-01-22 3 views
0

Я сталкиваюсь с проблемой, которую ни я, ни старший разработчик с компанией в течение 7 лет не могут решить, поэтому я надеюсь, что вы сможете помочь. PHP сообщает, что $ _POST пуст после отправки формы. Хотя большинство наших пользователей находятся в Windows XP с IE8, стоит отметить, что эта комбинация OS/Browser является единственной, которая испытывает проблемы. Кроме того, у нас есть 125-150 загрузок ежедневно (в основном с IE8), и только 3-5 пользователей испытывают проблему в неделю. Один пользователь, с которым я говорил, успешно загрузил несколько документов в прошлом без проблем и на том же компьютере, не смог загрузить документ на прошлой неделе.Как можно отправить форму без данных POST?

У кого-нибудь еще возникли проблемы с отправкой формы из IE8, не содержащей данных POST?

Наша компания имеет форму загрузки, загруженную в диалог пользовательского интерфейса jQuery для загрузки нескольких файлов, с базовым индикатором прогресса и кнопкой отмены. Код длинный и разбросан в нескольких файлах, поэтому я решил не копировать/вставлять его в этот момент, но я сделаю все возможное, чтобы проиллюстрировать его вкратце.

<div id="dialog_div"> 
<div id="form_container"> 
    <form> 
    </form> 
</div> 
<div id="progress_div"> 
</div> 
</div> 

Форма имеет пять входов файлов и кнопку, что это изначально отключен и включен только тогда, когда был выбран один или несколько файлов, нажмите кнопку. Прогресс div скрыт, и форма отображается, затем на submit, форма скрыта и отображается div прогресса. Используя setTimeout(), div прогресса обновляется каждые две секунды, чтобы показать процент загруженных, а также кнопку отмены. Мы используем процесс загрузки сеансов PHP для отслеживания загрузки и проверки того, что он не превышает максимальный размер. Если он превышает максимальный размер, XHR прерывается на стороне клиента. Нажатие кнопки «Отмена» запускает ту же функцию JS, которая используется для отмены загрузки слишком больших файлов. Когда нажата кнопка отмены, скрипт PHP, который получает форму, никогда не выполняется, поэтому в наших журналах ошибок ничего не отображается. Загрузка также может быть прервана, если наш скрипт выполнения не найдет данные сеанса о загрузке в течение 20 секунд.

Сложная часть заключается в том, что скрипт PHP, который получает форму, генерирует ошибку в наших журналах, которая равна «Без формы», потому что $ _POST пуст. Файлы, с которыми у пользователей возникли проблемы, НЕ слишком велики, и наши сотрудники смогли делать закачки для них с теми же файлами и через один и тот же интерфейс. Когда нажата кнопка отмены, сценарий никогда не выполняется, поэтому мы не думаем, что это проблема с тем, что загрузка была прервана.

Идеи сообщества.

+2

Обвинить его в Билле Гейтсе и двигаться дальше? –

+0

Во-первых, код формы, который вы опубликовали, слишком мало, чтобы догадываться. Во-вторых, установите сниффера http, чтобы узнать, что отправлено на сервер. Наконец, нажмите f12, чтобы увидеть какие-либо ошибки в консоли. – mplungjan

+0

Проверьте, используют ли пользователи IE8, измененные IEAK. Раньше у меня были проблемы с сообщениями ajax, если действительно это загрузка ajax. – Jack

ответ

2

У нас была аналогичная проблема с частотой 3% с загрузкой файлов. Никаких проблем с кем-либо еще, просто выберите клиентов.

Проблема была связана с плохими подключениями к Интернету и выходами на стороне клиента. Итак, что мы сделали, было заменено все с помощью специальной реализации plupload (http://www.plupload.com/). Таким образом, файлы разбиваются на мелкие куски на стороне клиента, а затем загружаются и рекомбинируются на сервере. Это нашло для нас проблему, и, возможно, стоит попробовать.

+0

Спасибо, bms, хотя я не уверен, что это сработает. Для чередования файлов нам нужно будет использовать сторонний плагин (flash/silverlight) или современный браузер. Клиенты, к сожалению, динозавры с ИТ-отделами, которые не решаются обновить IE8, не говоря уже о том, чтобы позволить своим сотрудникам использовать Silverlight ... – thatthatisis

+0

Понятно. Вы всегда можете молиться за чудо-ха-ха. Я скажу, что Plupload также использует версию html4, но это довольно бесполезно, но, возможно, стоит посмотреть. – bms

Смежные вопросы