Tratar con formularios

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.

En PHP, también puede tratar con entradas de XForms; aunque probablemente al principio se sienta cómodo con los formularios de HTML, los cuales están ampliamente respaldados. A pesar de que trabajar con XForms no es para principiantes, podrían interesarle. Si es así, en la sección de características hay una pequeña introducción a la manipulación de datos recibidos desde XForms.