Otra de las características más potentes de PHP es la forma de gestionar formularios HTML. El concepto básico que es importante entender es que cualquier elemento de un formulario estará disponible automáticamente en sus scripts de PHP. Por favor, lea la sección del manual sobre Variables desde fuentes externas para obtener más información y ejemplos sobre cómo usar formularios con PHP. Observemos un ejemplo:
Ejemplo #1 Un formulario HTML sencillo
<form action="accion.php" method="post"> <p>Su nombre: <input type="text" name="nombre" /></p> <p>Su edad: <input type="text" name="edad" /></p> <p><input type="submit" /></p> </form>
No hay nada especial en este formulario. Es solamente un formulario HTML sin ninguna clase de etiqueta especial. Cuando el usuario rellena este formulario y oprime el botón de envío, se llama a la página accion.php. En este fichero se podría escribir algo así:
Ejemplo #2 Mostrar información de nuestro formulario
Hola <?php echo htmlspecialchars($_POST['nombre']); ?>.
Usted tiene <?php echo (int)$_POST['edad']; ?> años.
Un ejemplo del resultado de este script podría ser:
Hola José. Usted tiene 22 años.
Excepto las partes de htmlspecialchars() y de
(int)
, debería ser obvio qué es lo que hace el código.
htmlspecialchars() garantiza que cualquier carácter que sea
especial en html se codifique adecuadamente, de manera que nadie pueda inyectar etiquetas
HTML o Javascript en la página. El campo edad, ya que sabemos que es un número, podemos
convertirlo a un valor de tipo
integer que automáticamente se deshará de cualquier
carácter no numérico. También se puede hacer lo mismo con PHP con la
extensión filter.
Las variables $_POST['nombre'] y $_POST['edad']
son establecidas automáticamente por PHP. Anteriormente hemos usado
la superglobal $_SERVER; arriba introdujimos
la superglobal $_POST,
la cual contiene todos los datos de POST. Observe que el
método de nuestro formulario es POST. Si hubiésemos usado
el método GET, nuestra información estaría en su lugar
en la superglobal $_GET.
También se podría usar la superglobal $_REQUEST,
si no le preocupa la fuente de los datos solicitados. Contiene
toda la información de los datos de GET, POST y COOKIE mezclada.