Tratamiento de formularios PHP

Las variables globales superiores de PHP $_GET y $_POST se utilizan para recopilar datos del formulario (form-data).

PHP - Un formulario HTML simple

El siguiente ejemplo muestra un formulario HTML simple que contiene dos campos de entrada y un botón de envío:

Ejemplo

<html>
<body>
<form action="welcome.php" method="post">
Nombre: <input type="text" name="name"><br>
Correo electrónico: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Ejemplo de ejecución

Después de que el usuario complete este formulario y haga clic en el botón de envío, los datos del formulario se envían a un archivo PHP llamado "welcome.php" para su procesamiento. Los datos del formulario se envían mediante el método HTTP POST.

Para mostrar los datos enviados, puede simplemente output (echo) todas las variables. El archivo "welcome.php" es así:

<html>
<body>
Bienvenido <?php echo $_POST["name"]; ?><br>
Su dirección de correo electrónico es: <?php echo $_POST["email"]; ?>
</body>
</html>

Salida:

Bienvenido Bill
Su dirección de correo electrónico es Bill.Gates@example.com

También se puede obtener el mismo resultado utilizando el método HTTP GET:

Ejemplo

<html>
<body>
<form action="welcome_get.php" method="get">
Nombre: <input type="text" name="name"><br>
Correo electrónico: <input type="text" name="email"><br>
<input type="submit">
</form>
</body>
</html>

Ejemplo de ejecución

"welcome_get.php" es así:

<html>
<body>
Bienvenido <?php echo $_GET["name"]; ?><br>
Su dirección de correo electrónico es: <?php echo $_GET["email"]; ?>
</body>
</html>

El código anterior es simple. Sin embargo, se omitió el contenido más importante. Debe validar los datos del formulario para evitar vulnerabilidades en el script.

Atención:¡Atienda a la seguridad al manejar formularios PHP!

Esta página no incluye programas de validación de formularios, solo muestra cómo enviar y recibir datos de formularios.

¡Pero en los capítulos posteriores le explicaremos cómo aumentar la seguridad de los formularios PHP! Validar adecuadamente los formularios es crucial para resistir ataques de hackers y correos basura.

GET vs. POST

GET y POST crean arreglos (por ejemplo, array( key => value, key2 => value2, key3 => value3, ...)). Este arreglo contiene pares clave/valor, donde la clave es el nombre del controlador de formulario y el valor son los datos de entrada del usuario.

GET y POST se consideran $_GET y $_POST. Son variables superglobales, lo que significa que no se necesita considerar el ámbito para acceder a ellas - no se requiere ningún código especial, puede acceder a ellas desde cualquier función, clase o archivo.

$_GET es un array de variables que se transmite al script actual mediante parámetros de URL.

$_POST es un array de variables que se transmite al script actual mediante HTTP POST.

Cuándo usar GET?

Información enviada desde el formulario mediante método GETVisible para todos(todos los nombres de variables y valores se muestran en la URL)。GET tiene un límite en la cantidad de información que se envía. El límite es aproximadamente 2000 caracteres. Sin embargo, ya que las variables se muestran en la URL, también es más conveniente agregar la página a los favoritos.

GET se puede usar para enviar datos no sensibles.

Comentario:¡Nunca se debe usar GET para enviar contraseñas u otra información sensible!

Cuándo usar POST?

Información enviada desde el formulario mediante método POSTInvisible para otros(todos los nombres/valores se insertan en el cuerpo de la solicitud HTTP),y también hay un límite en la cantidad de información que se envíaIlimitado.

Además, POST admite funciones avanzadas, como la entrada de multi-part binaria al subir archivos al servidor.

Sin embargo, ya que las variables no se muestran en la URL, también no se puede agregar la página a los favoritos.

Consejo:Los desarrolladores prefieren POST para enviar datos de formulario.

Vamos a ver cómo manejar de manera segura los formularios PHP!