Comprobando si se ha enviado el formulario - PHP

Resuelto Anonymous asked hace 54 años • 10 respuestas

¿Cuál es la mejor manera de comprobar si se ha enviado un formulario para determinar si debo pasar las variables del formulario a mi clase de validación?

Primero pensé que tal vez:

isset($_POST)

Pero eso siempre será cierto, ya que lo superglobal se define en todas partes. No quiero tener que recorrer cada elemento de mi formulario con:

if(isset($_POST['element1']) || isset($_POST['element2']) || isset(...etc

Mientras escribía esta pregunta, pensé en una solución mucho más básica: agregar un campo oculto para que actúe como una bandera que pueda verificar.

¿Existe una forma más "limpia" de hacerlo que agregar mi propia bandera?

Anonymous avatar Jan 01 '70 08:01 Anonymous
Aceptado

Para comprobar en general si hubo una POSTacción, utilice:

if ($_POST)

EDITAR : Como se indica en los comentarios, este método no funcionará en algunos casos (por ejemplo, con casillas de verificación y botones sin nombre). Realmente deberías usar:

if ($_SERVER['REQUEST_METHOD'] == 'POST')
matino avatar Oct 10 '2011 10:10 matino

Qué tal si

if($_SERVER['REQUEST_METHOD'] == 'POST')
Olaf avatar Oct 10 '2011 10:10 Olaf

En realidad, el botón de enviar ya realiza esta función.

Pruebe en el FORMULARIO:

<form method="post">
<input type="submit" name="treasure" value="go!">
</form>

Luego en el controlador PHP:

if (isset($_POST['treasure'])){
echo "treasure will be set if the form has been submitted (to TRUE, I believe)";
}
Tzshand avatar Mar 17 '2012 17:03 Tzshand

Usar

if(isset($_POST['submit'])) // name of your submit button
Rikesh avatar Oct 10 '2011 10:10 Rikesh