Назад | Перейти на главную страницу

Почему POSTing может вызвать черную дыру?

Я разрабатываю приложение с использованием CakePHP и столкнулся со странной проблемой: когда я отправляю данные POST в конкретный метод, я получаю 0-байтовый ответ и простую ошибку 404 в журнале доступа.

psycho953.psych.susx.ac.uk - - [11/Oct/2011:10:17:43 +0100] "GET /research/ssd/aesthetics/participants/add HTTP/1.1" 200 3255 "-" "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"
psycho953.psych.susx.ac.uk - - [11/Oct/2011:10:17:44 +0100] "POST /research/ssd/aesthetics/participants/add HTTP/1.1" 404 - "http://webvm.psych.sussex.ac.uk/research/ssd/aesthetics/participants/add" "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1"

Отправка в другие формы работает независимо от того, используют ли они CakePHP или просто обычный PHP.

Я не могу понять, как работать за пределами 0-байтового ответа. Мой вопрос не столько «Почему это не работает?» как "Как я могу узнать, что не работает?"

Для записи php.ini настроен на отображение ошибок и преуспевает в этом для синтаксических ошибок и т. Д.

Хорошо, значит проблема возникла из-за ошибки, но я так и не узнал, в чем была ошибка. Я решил это только путем проб и (кхм), и я все еще хотел бы знать, как я мог бы сделать это более методично.

Для всех, кого это интересовало, проблема заключалась в пропущенном поле, которого ожидал Cake. Я отключил поле ввода, которое было предварительно заполнено данными из другого места. Я не понимал, что отключение ввода остановит отправку его значения. Мое решение - включить скрытое поле.

Опять же, я понятия не имею, почему эти ошибки не отображались, и я не уверен, почему единственной подсказкой было 404 в журнале доступа. Я оставлю этот вопрос без ответа на несколько дней, на случай, если кто-нибудь захочет указать причину этого.


ОБНОВИТЬ: Оказывается, это «функция» безопасности CakePHP. В моей форме был отключен ввод, а это означало, что хэш имен полей, передаваемых Cake с формой, не соответствовал тому, что он получил обратно (отключенные вводы не помещаются в POSTED).