Pergunta

Por que é que quando eu passar parâmetros através de URL codificado e método no formulário HTML GET, os parâmetros de URL codificada são descartados?

por exemplo. Configuração:

<form action="process.php?hello=world" method="GET">
<input type="text" name="foo" value="bar">
<input type="submit">
</form>

Resultado:. A variável hello não será reconhecido em process.php

Essa prática é ruim?

É assim que PHP processa-lo, ou ele está relacionado à forma como o navegador enviar o pedido? Existe o mesmo problema em outros idiomas?

Foi útil?

Solução

Sim, isso é uma prática ruim porque ele simplesmente não funciona.

Se você quer passar em "input forma oculta", então você deve usar um elemento de formulário oculto:

<input type="hidden" name="hello" value="world" />

Como afirma rezzif em seu comentário, você pode misturar GET e POST assim:

<form action="/something?foo=bar" method="POST">
<input type="text" name="baz" />
</form>

Como regra geral I evitar misturar os dois embora. Acho que é bizarro ter GET params na minha ação do formulário.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top