Formulario de registro PHP utilizando métodos GET y POST con ejemplo

⚡ Resumen inteligente

El manejo de formularios en PHP captura la información ingresada por el usuario en formularios HTML y la procesa en el servidor mediante las variables superglobales $_POST y $_GET. Este tutorial crea un formulario de registro, explica los métodos POST y GET, los compara y muestra cómo procesar campos, casillas de verificación y datos de búsqueda.

  • 📝 ¿Qué hacen los formularios? Un formulario HTML recopila la información que introduce el usuario a través de campos como cuadros de texto, casillas de verificación y botones, y luego la envía a un script del servidor.
  • 📬 Método de publicación: $_POST envía valores en el cuerpo HTTP, keeping ellos fuera de la URL, lo cual es adecuado para inicios de sesión y datos confidenciales.
  • 🔗 OBTENER método: $_GET agrega valores al URL, de modo que los resultados se pueden guardar como favoritos, lo cual es ideal para los formularios de búsqueda.
  • 🇧🇷 POST vs GET: POST no tiene un límite de longitud práctico y admite muchos tipos de datos; GET es más corto, solo admite cadenas de texto y es visible.
  • Procesamiento de entrada: La función isset() comprueba si se ha enviado un campo antes de que el script lea y utilice su valor.
  • ☑️ Casillas de verificación: Una casilla de verificación envía un valor solo cuando está marcada, por lo que isset() confirma si el usuario aceptó o seleccionó la opción.
  • 🤖 Asistencia de IA: Las herramientas de IA pueden generar un formulario validado y seguro, y ayudar a diagnosticar por qué un formulario no se envía correctamente.

Manejo de formularios PHP

¿Qué es Forma?

Cuando inicias sesión en un sitio web o en tu correo electrónico, estás 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.

Formulario PHP

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 y más.

El formulario se define utilizando el … Las etiquetas y los elementos de la interfaz gráfica de usuario se definen mediante elementos de formulario como campos de entrada.

¿Cuándo y por qué utilizamos formularios?

  • Los formularios resultan útiles cuando se desarrollanping Aplicaciones flexibles y dinámicas que aceptan la entrada del usuario.
  • Los formularios pueden utilizarse para editar datos ya existentes en 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
  • Sumisión URL que procesará los datos enviados
  • Campos de entrada como cuadros de texto, áreas de texto, botones, casillas de verificación y similares.

El siguiente código crea un formulario de registro sencillo.

<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.

Crear un formulario

AQUÍ,

  • … son las etiquetas de apertura y cierre del formulario.
  • La acción "registration_form.php" y el método "POST" especifican el destino. URL 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, al pulsarlo, envía el formulario al servidor para su procesamiento.

Enviar los datos del formulario al servidor.

El atributo de acción del formulario especifica el envío URL que procesa los datos. El atributo método especifica el tipo de envío.

Método de publicación PHP

  • Esta es la variable de matriz superglobal integrada de PHP que se utiliza para obtener los 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 se desea mostrar los valores del formulario en el URL.
  • Un buen ejemplo del uso del método POST es al enviar los datos de inicio de sesión al servidor.

Tiene la siguiente sintaxis.

<?php
$_POST['variable_name'];
?>

AQUÍ,

  • “$_POST[…]” es el Matriz PHP
  • “'variable_name'” es el nombre del campo del formulario.

Método PHP GET

  • Esta es la variable de matriz superglobal integrada de PHP que se utiliza para obtener los 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 el URL.
  • Es ideal para formularios de motores de búsqueda, ya que permite a los usuarios guardar los resultados como favoritos.

Tiene la siguiente sintaxis.

<?php
$_GET['variable_name'];
?>

AQUÍ,

  • “$_GET[…]” es la matriz PHP
  • “'variable_name'” es el URL nombre de la variable.

Métodos GET vs POST

PUBLICAR
Valores no visibles en el URL Valores visibles en el URL
No tiene limitación en la longitud de los valores ya que se envían a través del cuerpo de la solicitud HTTP. Tiene una limitación en la longitud de los valores, normalmente 255 caracteres. Esto se debe a que los valores se muestran en el URLTenga en cuenta que el límite superior de caracteres depende del navegador.
Tiene un rendimiento inferior en comparación con el método GET debido al tiempo empleado en encapsular los valores POST en el cuerpo HTTP. Tiene un rendimiento superior en comparación con el método POST debido a la naturaleza simple de agregar los valores en el URL.
Admite muchos tipos de datos diferentes, como cadenas de texto, números, datos binarios y más. Solo admite tipos de datos de cadena porque los valores se muestran en el URL
Los resultados no se pueden guardar como favoritos. Los resultados se pueden marcar como favoritos debido a la visibilidad de los valores en el URL

El siguiente diagrama muestra la diferencia entre GET y POST.

Métodos GET vs POST

Métodos GET vs POST

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 almacenan en el array superglobal $_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="/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 rellenado en el array `$_POST[]` y muestra un mensaje de agradecimiento y el nombre. Si el campo `form_submitted` no se ha rellenado en el array `$_POST[]`, se muestra el formulario.

Más ejemplos

buscador sencillo

Diseñaremos un motor de búsqueda sencillo que utilice el método GET de PHP como tipo de envío de formulario.

En aras de la simplicidad, utilizaremos un Sentencia if de PHP 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="/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>

Visualice la página anterior en un navegador web.

Se mostrará el siguiente formulario.

Motor de búsqueda sencillo

Escriba GET en mayúsculas y, a continuación, haga clic en el botón de enviar.

A continuación se mostrará lo siguiente.

Motor de búsqueda sencillo

El diagrama a continuación muestra el URL para los resultados anteriores.

Motor de búsqueda sencillo

Nota la URL ha mostrado el valor de search_term y form_submitted. Intenta introducir algo distinto de GET, luego haz clic en el botón de enviar y observa qué resultados obtienes.

Trabajar con casillas de verificación y botones de opción

Si el usuario no selecciona una casilla de verificación ni 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="/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>

Visualice el formulario anterior en un navegador.

Trabajar con casillas de verificación y botones de opción

Rellena el nombre y el 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.

Trabajar con casillas de verificación y botones de opción

Haz clic en el enlace "Volver al formulario" y, a continuación, selecciona la casilla de verificación.

Trabajar con casillas de verificación y botones de opción

Haga clic en el botón enviar.

Obtendrás los siguientes resultados.

Trabajar con casillas de verificación y botones de opción

Preguntas Frecuentes

$_GET lee valores del URL $_POST lee los valores del cuerpo de la solicitud y $_REQUEST combina los datos de GET, POST y cookies. Se recomienda usar un array específico para saber con exactitud de dónde proviene cada valor.

Nunca confíes en datos de entrada sin procesar. Valida la salida con filter_var() o reglas para cada campo, y escapa la salida con htmlspecialchars() para evitar ataques XSS. Utiliza sentencias preparadas para escribir en la base de datos y así prevenir la inyección SQL.

Las causas comunes son un método de formulario GET en lugar de POST, atributos de nombre faltantes en los campos de entrada, una acción incorrecta URLo un enctype multipart faltante para cargas de archivos. Verifique cada uno de estos con su formulario.

Sí. La IA puede crear el formulario HTML, además de realizar la validación del lado del servidor, la protección CSRF y la salida con caracteres de escape. RevRevisa las reglas de cada campo y confirma que las comprobaciones de seguridad coinciden con tu aplicación antes de la implementación.

Sí. Comparta el formulario y el controlador, y la IA podrá detectar una discrepancia en el método, un atributo de nombre faltante, una ruta de acción incorrecta o una rama de validación que bloquea el envío, y luego sugerir la solución.

Resumir este post con: