PHP Manual
/
Formularios

Formularios, procesamiento de formularios en PHP

22. 08. 2019

Supongo que hemos creado un formulario HTML, que enviamos y ahora queremos procesar los datos. Hay un artículo aparte sobre la creación de un formulario HTML.

Recepción de datos - diferentes formas

La forma de enviar el formulario se establece directamente en el HTML

Hay dos opciones:

  • GET - Es visible en la barra de direcciones después del signo de interrogación Por ejemplo: php.baraja.cz/search.php?query=formulare
  • POST - Oculto (no visible), la mayoría de los formularios se envían por correo

Luego tenemos que leerlos en PHP utilizando el mismo método.

Obtener los datos del usuario y transferirlos al script

La base es un formulario HTML, cómo hacerlo puedes leer en un artículo aparte.

Para empezar, supongamos un simple formulario para introducir el nombre del usuario:

<form action="welcome.php" method="GET">
Zadejte jméno: <input type="text" name="username">
<input type="submit" value="odeslat">
</form>

Aparecerá un cuadro de texto para introducir un nombre y hacer clic para enviar. Cuando se hace clic en el botón, el contenido del campo se envía al script welcome.php.

Ahora el procesamiento real en el archivo welcome.php:

$username = $_GET['nombre de usuario'];
echo 'El nombre introducido es:' . $username;

Observe la variable especial $_GET. Es una variable superglobal que contiene datos del formulario y a la que se puede acceder como un array.

El problema con esta solución, sin embargo, es que los datos recibidos no son seguros y una forma similar puede ser fácilmente atacada. Por ejemplo, un atacante potencial puede introducir un código javascript en el campo en lugar de un nombre, que se escribirá en la página y se ejecutará.

Por lo tanto, siempre debemos desinfectar cualquier dato del usuario antes de imprimirlo en el código HTML:

$username = $_GET['nombre de usuario'] ?? 'Desconocido';
echo 'El nombre introducido es:' . htmlspecialchars($username);

Tratamiento posterior

Podemos hacer cualquier cosa con los datos recibidos y tratarlos como cualquier variable ordinaria.

Por ejemplo, añada el valor en dos campos:

echo $_GET['x'] + $_GET['y'];

O guardar en un archivo, base de datos, correo electrónico, ...

Las siguientes funciones son útiles para ello:

  • archivo_poner-contenidos - función para guardar datos en un archivo
  • MD5 - cálculo de la suma de comprobación, por ejemplo para las contraseñas
  • Cookies - guardar datos en cookies (pequeños archivos dentro del navegador web)

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
Status:
All systems normal.
2024