Последние пару месяцев я использовал Uploadify в своем PHP-приложении и пытался отследить неуловимую ошибку. Я получаю электронные письма, когда происходят фатальные ошибки, и они предоставляют мне большое количество деталей. Я получил десятки из них. Однако я не смог воспроизвести проблему сам. Некоторые пользователи (как и я) не испытывают никаких проблем, в то время как другие испытывают.
Прежде чем я подробно расскажу о проблеме, рассмотрим поток.
- Пользователь посещает экран редактирования страницы в CMS, которую я использую.
- Идентификатор записи для страницы помещается в форму как скрытое значение.
- Пользователь нажимает кнопку обзора Uploadify и выбирает файл (разрешен только один выбор файла).
- Пользователь нажимает кнопку Отправить для моей формы.
- jQuery перехватывает действие отправки формы, запускает Uploadify, чтобы начать загрузку, и возвращает false для действия отправки (вручную отменяя событие отправки формы, чтобы Uploadify мог вступить во владение).
- Uploadify загружает в пользовательский скрипт процесса.
- Uploadify завершает загрузку и запускает обратный вызов завершения Javascript.
- Обратный вызов Javascript вызывает $ ('# myForm'). Submit () для отправки формы.
Теперь это то, что ДОЛЖНО произойти. Я получил отчеты о зависании загрузки на 100%, а также другие, где отображается «Ошибка ввода-вывода».
Что происходит, форма отправляется с обратным вызовом завершения, но некоторые параметры сообщения, присутствующие в форме, просто отсутствуют в данных сообщения. Идентификатор страницы, который, как я говорил ранее, добавляется в форму как скрытое поле, просто отсутствует в данных поста ($ _POST) - в массиве $ _POST нет элемента для 'id'. Странно то, что данные поста содержат значения для некоторых полей. Например, у меня есть ввод типа text с именем «name» для имени записи, и он отображается в данных поста.
Вот что я собрал:
- Это происходило в Mac OSX 10.5 и 10.6, Windows XP и Windows 7. Я могу опубликовать точные строки пользовательских агентов, если это поможет.
- Пользователи должны использовать Flash 10.0.12 или более поздней версии. Мы сделали так, чтобы форма возвращалась к использованию обычного поля «файл», если они имеют <10.0.12. </li>
У кого-нибудь есть ЛЮБЫЕ идеи вообще, что может быть причиной этого?