Por que o POSTing pode causar um buraco negro?

2

Estou desenvolvendo um aplicativo usando o CakePHP e encontrei um problema estranho: Quando eu POSTAR dados para um método específico, recebo uma resposta de 0 byte e um erro 404 simples no log de acesso.

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"

POSTAR para outros trabalhos de formulários, quer eles usem o CakePHP ou apenas PHP regular.

Não consigo descobrir como trabalhar além da resposta de 0 byte. Minha pergunta não é tanto "Por que isso não funciona?" como "Como posso descobrir o que não está funcionando?"

Para o registro, o php.ini está configurado para exibir erros e conseguir fazê-lo para erros de sintaxe, etc.

    
por Tom Wright 11.10.2011 / 11:43

1 resposta

3

OK, então o problema foi devido a um erro, mas eu nunca descobri qual era o erro. Eu só resolvi isso por tentativa e erro ( ahem ) e ainda gostaria de saber como poderia ter feito isso mais metodicamente.

Para qualquer pessoa interessada, o problema tem algo a ver com um campo perdido que o Cake esperava. Eu desabilitei um campo de entrada que foi pré-preenchido com dados de outro lugar. Não percebi que desativar a entrada impediria que o valor fosse enviado. Minha solução é incluir um campo oculto.

Novamente, não tenho ideia de por que esses erros não foram exibidos e não sei por que a única pista era um erro 404 no log de acesso. Deixarei esta questão sem resposta por alguns dias, caso alguém queira sugerir uma razão para isso.

UPDATE: Acontece que é um "recurso" de segurança do CakePHP. Meu formulário tinha uma entrada desativada, o que significava que o hash de nomes de campo que o Cake passa com o formulário não correspondia ao que ele retornou (entradas desativadas não são POSTADAS).

    
por 11.10.2011 / 14:54