Formulario de registro PHP utilizando métodos GET y POST con ejemplo
¿Qué es Forma?
Cuando inicia sesión en un sitio web o en su buzón de correo, está interactuando con un formulario.
Los formularios se utilizan para obtener información del usuario y enviarla al servidor web para su procesamiento.
El siguiente diagrama ilustra el proceso de manejo de formularios.
Un formulario es una etiqueta HTML que contiene elementos de interfaz gráfica de usuario, como cuadros de entrada, casillas de verificación, botones de opción, etc.
El formulario se define utilizando las etiquetas … y los elementos de la GUI se definen utilizando elementos del formulario como la entrada.
¿Cuándo y por qué utilizamos formularios?
- Los formularios resultan útiles a la hora de desarrollar aplicaciones flexibles y dinámicas que acepten aportaciones del usuario.
- Los formularios se pueden utilizar para editar datos ya existentes de la base de datos.
Crear un formulario
Usaremos etiquetas HTML para crear un formulario. A continuación se muestra la lista mínima de cosas que necesita para crear un formulario.
- Abrir y cerrar etiquetas de formulario …
- Tipo de envío de formulario POST o GET
- URL de envío que procesará los datos enviados
- Campos de entrada como cuadros de entrada, áreas de texto, botones, casillas de verificación, etc.
El siguiente código crea un formulario de registro simple.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> </body> </html>
Al ver el código anterior en un navegador web se muestra el siguiente formulario.
AQUÍ,
- … son las etiquetas de apertura y cierre del formulario.
- action=”registration_form.php” método=”POST”> especifica la URL de destino y el tipo de envío.
- Nombre/Apellido: son etiquetas para los cuadros de entrada
- son etiquetas de cuadro de entrada
- es la etiqueta de nueva línea
- es un valor oculto que se utiliza para comprobar si el formulario se ha enviado o no.
- es el botón que, cuando se hace clic, envía el formulario al servidor para su procesamiento.
Enviar los datos del formulario al servidor.
El atributo de acción del formulario especifica la URL de envío que procesa los datos. El atributo del método especifica el tipo de envío.
Método de publicación PHP
- Esta es la variable de matriz súper global de PHP integrada que se utiliza para obtener valores enviados a través del método HTTP POST.
- Se puede acceder a la variable de matriz desde cualquier script del programa; tiene un alcance global.
- Este método es ideal cuando no desea mostrar los valores de publicación del formulario en la URL.
- Un buen ejemplo del uso del método post es cuando se envían detalles de inicio de sesión al servidor.
Tiene la siguiente sintaxis.
<?php $_POST['variable_name']; ?>
AQUÍ,
- “$_POST[…]” es el Matriz PHP
- “’nombre_variable’” es el nombre de la variable URL.
Método PHP GET
- Esta es la variable de matriz súper global PHP integrada que se utiliza para obtener valores enviados a través del método HTTP GET.
- Se puede acceder a la variable de matriz desde cualquier script del programa; tiene un alcance global.
- Este método muestra los valores del formulario en la URL.
- Es ideal para formularios de motores de búsqueda, ya que permite a los usuarios marcar los resultados.
Tiene la siguiente sintaxis.
<?php $_GET['variable_name']; ?>
AQUÍ,
- “$_GET[…]” es la matriz PHP
- “’nombre_variable’” es el nombre de la variable URL.
Métodos GET vs POST
PUBLICAR | |
---|---|
Valores no visibles en la URL | Valores visibles en la URL |
No tiene limitación de la longitud de los valores ya que se envían a través del cuerpo de HTTP. | Tiene una limitación en la longitud de los valores, normalmente 255 caracteres. Esto se debe a que los valores se muestran en la URL. Tenga en cuenta que el límite superior de caracteres depende del navegador. |
Tiene un rendimiento inferior en comparación con el método Php_GET debido al tiempo dedicado a encapsular los valores Php_POST en el cuerpo HTTP. | Tiene un alto rendimiento en comparación con el método POST debido a la simple naturaleza de agregar los valores en la URL. |
Admite muchos tipos de datos diferentes, como cadenas, numéricos, binarios, etc. | Solo admite tipos de datos de cadena porque los valores se muestran en la URL |
Los resultados no se pueden marcar como libros | Los resultados se pueden marcar debido a la visibilidad de los valores en la URL. |
El siguiente diagrama muestra la diferencia entre obtener y publicar.
Tratamiento de los datos del formulario de inscripción
El formulario de registro se envía datos a sí mismo según lo especificado en el atributo de acción del formulario.
Cuando se envía un formulario, los valores se completan en la matriz súper global $_POST.
Usaremos la función isset de PHP para verificar si los valores del formulario se han completado en la matriz $_POST y procesaremos los datos.
Modificaremos el formulario de registro para incluir el código PHP que procesa los datos. A continuación se muestra el código modificado.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> //this code is executed when the form is submitted <h2>Thank You <?php echo $_POST['firstname']; ?> </h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p>Go <a href="/es/registration_form.php">back</a> to the form</p> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ? > </body> </html>
AQUÍ,
-
comprueba si el campo oculto form_submitted se ha completado en la matriz $_POST[] y muestra un mensaje de agradecimiento y de nombre.
Si el campo form_fobmitted no se ha completado en la matriz $_POST[], se muestra el formulario.
Más ejemplos
buscador sencillo
Diseñaremos un motor de búsqueda simple que utilice el método PHP_GET como tipo de envío de formulario.
En aras de la simplicidad, utilizaremos un PHP si declaración para determinar la salida.
Usaremos el mismo código HTML para el formulario de registro anterior y le haremos modificaciones mínimas.
<html> <head> <title>Simple Search Engine</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_GET['form_submitted'])): ?> <h2>Search Results For <?php echo $_GET['search_term']; ?> </h2> <?php if ($_GET['search_term'] == "GET"): ?> <p>The GET method displays its values in the URL</p> <?php else: ?> <p>Sorry, no matches found for your search term</p> <?php endif; ?> <p>Go <a href="/es/search_engine.php">back</a> to the form</p> <?php else: ?> <h2>Simple Search Engine - Type in GET </h2> <form action="search_engine.php" method="GET"> Search Term: <input type="text" name="search_term"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Ver la página anterior en un navegador web
Se mostrará el siguiente formulario
Escriba OBTENER en mayúscula y luego haga clic en el botón Enviar.
Se mostrará lo siguiente
El siguiente diagrama muestra la URL de los resultados anteriores.
Tenga en cuenta que la URL muestra el valor de search_term y form_submitted. Intente ingresar algo diferente a GET, luego haga clic en el botón enviar y vea qué resultados obtendrá.
Trabajar con casillas de verificación y botones de opción
Si el usuario no selecciona una casilla de verificación o un botón de opción, no se envía ningún valor; si el usuario selecciona una casilla de verificación o un botón de opción, se envía el valor uno (1) o verdadero.
Modificaremos el código del formulario de registro e incluiremos un botón de verificación que permita al usuario aceptar los términos de servicio.
<html> <head> <title>Registration Form</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <?php if (isset($_POST['form_submitted'])): ?> <?php if (!isset($_POST['agree'])): ?> <p>You have not accepted our terms of service</p> <?php else: ?> <h2>Thank You <?php echo $_POST['firstname']; ?></h2> <p>You have been registered as <?php echo $_POST['firstname'] . ' ' . $_POST['lastname']; ?> </p> <p> Go <a href="/es/registration_form2.php">back</a> to the form</p> <?php endif; ?> <?php else: ?> <h2>Registration Form</h2> <form action="registration_form2.php" method="POST"> First name: <input type="text" name="firstname"> <br> Last name: <input type="text" name="lastname"> <br> Agree to Terms of Service: <input type="checkbox" name="agree"> <br> <input type="hidden" name="form_submitted" value="1" /> <input type="submit" value="Submit"> </form> <?php endif; ?> </body> </html>
Ver el formulario anterior en un navegador
Complete el nombre y apellido
Tenga en cuenta que la casilla de verificación Aceptar los términos del servicio no ha sido seleccionada.
Haga clic en el botón enviar
Obtendrás los siguientes resultados
Haga clic en el enlace Volver al formulario y luego seleccione la casilla de verificación
Haga clic en el botón enviar
Obtendrás los siguientes resultados
Resum
- Los formularios se utilizan para obtener datos de los usuarios.
- Los formularios se crean utilizando etiquetas HTML.
- Los formularios se pueden enviar al servidor para su procesamiento mediante el método POST o GET.
- Los valores del formulario enviados mediante el método POST se encapsulan en el cuerpo HTTP.
- Los valores del formulario enviados mediante el método GET se adjuntan y se muestran en la URL.