Comprobando si se ha enviado el formulario - PHP
¿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?
Para comprobar en general si hubo una POST
acció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')
Qué tal si
if($_SERVER['REQUEST_METHOD'] == 'POST')
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)";
}
Usar
if(isset($_POST['submit'])) // name of your submit button