Manejo de formularios PHP
Los superglobales de PHP $_GET y $_POST se utilizan para recopilar datos de formulario.
PHP: un formulario HTML simple
El siguiente ejemplo muestra un formulario HTML simple con dos campos de entrada y un botón de envío:
Ejemplo
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
Cuando el usuario completa el formulario anterior y hace clic en el botón Enviar, los datos del formulario se envían para su procesamiento a un archivo PHP llamado "welcome.php". Los datos del formulario se envían con el método HTTP POST.
Para mostrar los datos enviados, simplemente puede hacer eco de todas las variables. El "welcome.php" se ve así:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?><br>
Your email address is: <?php echo $_POST["email"]; ?>
</body>
</html>
La salida podría ser algo como esto:
Welcome John
Your email address is [email protected]
El mismo resultado también podría lograrse utilizando el método HTTP GET:
Ejemplo
<html>
<body>
<form action="welcome_get.php" method="get">
Name: <input type="text" name="name"><br>
E-mail: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>
y "welcome_get.php" se ve así:
<html>
<body>
Welcome <?php echo $_GET["name"]; ?><br>
Your email address is: <?php echo $_GET["email"]; ?>
</body>
</html>
El código anterior es bastante simple. Sin embargo, falta lo más importante. Debe validar los datos del formulario para proteger su secuencia de comandos del código malicioso.
¡Piense en SEGURIDAD al procesar formularios PHP!
Esta página no contiene ninguna validación de formulario, solo muestra cómo puede enviar y recuperar datos de formulario.
Sin embargo, las próximas páginas mostrarán cómo procesar formularios PHP teniendo en cuenta la seguridad. ¡La validación adecuada de los datos del formulario es importante para proteger su formulario de piratas informáticos y spammers!
OBTENER frente a POST
Tanto GET como POST crean una matriz (por ejemplo, matriz (clave1 => valor1, clave2 => valor2, clave3 => valor3, ...)). Esta matriz contiene pares clave/valor, donde las claves son los nombres de los controles de formulario y los valores son los datos de entrada del usuario.
Tanto GET como POST se tratan como $_GET y $_POST. Estos son superglobales, lo que significa que siempre están accesibles, independientemente del alcance, y puede acceder a ellos desde cualquier función, clase o archivo sin tener que hacer nada especial.
$_GET es una matriz de variables que se pasan al script actual a través de los parámetros de URL.
$_POST es una matriz de variables que se pasan al script actual a través del método HTTP POST.
¿Cuándo usar GET?
La información enviada desde un formulario con el método GET es visible para todos (todos los nombres y valores de las variables se muestran en la URL). GET también tiene límites en la cantidad de información a enviar. La limitación es de unos 2000 caracteres. Sin embargo, debido a que las variables se muestran en la URL, es posible marcar la página. Esto puede ser útil en algunos casos.
GET puede usarse para enviar datos no confidenciales.
Nota: NUNCA se debe usar GET para enviar contraseñas u otra información confidencial.
¿Cuándo usar POST?
La información enviada desde un formulario con el método POST es invisible para los demás (todos los nombres/valores están incrustados en el cuerpo de la solicitud HTTP) y no tiene límites en la cantidad de información a enviar.
Además, POST admite funciones avanzadas, como compatibilidad con entrada binaria de varias partes al cargar archivos en el servidor.
Sin embargo, debido a que las variables no se muestran en la URL, no es posible marcar la página.
Los desarrolladores prefieren POST para enviar datos de formulario.
A continuación, ¡veamos cómo podemos procesar formularios PHP de forma segura!