· Andrés Ledo · PHP · Lectura en 2 min
Manejo de formularios en PHP
Aprende a crear y procesar formularios en PHP. Descubre cómo validar y sanear los datos del formulario y cómo redirigir al usuario después de enviar el formulario.
Los formularios son una parte crucial de cualquier aplicación web. PHP proporciona varias formas de procesar los datos de un formulario. En esta guía, te mostraremos cómo manejar formularios en PHP.
📚 Creando un formulario HTML básico
Un formulario HTML puede ser tan simple como esto:
<form method="POST" action="procesar.php">
<label for="nombre">Nombre:</label>
<input type="text" id="nombre" name="nombre">
<input type="submit" value="Enviar">
</form>
Aquí, el atributo action
del formulario apunta a procesar.php
, que es el archivo PHP que procesará los datos del formulario.
💻 Procesando los datos del formulario con PHP
Para procesar los datos del formulario en PHP, puedes usar la superglobal $_POST
o $_GET
, dependiendo del método que hayas especificado en tu formulario. Aquí te mostramos cómo procesar los datos del formulario de ejemplo que hemos mostrado antes:
$nombre = $_POST['nombre'];
echo 'Hola, ' . $nombre;
🛡️ Importante: siempre valida y sanea los datos del formulario
Nunca debes confiar en los datos proporcionados por el usuario. Siempre debes validar y sanear los datos del formulario antes de usarlos. PHP proporciona varias funciones para esto, como filter_input
y filter_var
.
Por ejemplo, si quieres asegurarte de que $nombre
es una cadena de texto, puedes hacer lo siguiente:
$nombre = filter_input(INPUT_POST, 'nombre', FILTER_SANITIZE_STRING);
Esto eliminará cualquier etiqueta HTML de $nombre
, lo que puede ayudar a prevenir ataques de cross-site scripting (XSS).
🔄 Redirigiendo después de enviar el formulario
Después de procesar los datos del formulario, normalmente querrás redirigir al usuario a otra página para evitar que se vuelvan a enviar los datos del formulario si el usuario actualiza la página. Puedes hacer esto con la función header
de PHP:
header('Location: gracias.php');
exit();