Manual de PHP: Formularios web

Formularios web

Los formularios son el sistema mediante el cual un usuario envía datos a un sitio web. En el servidor web, PHP se encargará de procesar la información que el usuario ha introducido.

Formularios HTML

Los formularios no forman parte de PHP sino de HTML. Se definen con la etiqueta <form>:

<html>
<body>
    <form action="receptor.php" method="post">
        Nombre: <input type="text" name="nombre" size="20"><br />
        Mensaje: <textarea name="mensaje" cols="30" rows="7"></textarea><br />
        <input type="submit" value="enviar" name="enviar">
    </form>
</body>
</html>
  • <form></form>: formulario.
  • action: script que va procesar el formulario.
  • method: forma en que viajarán los datos (post / get).

Leer más: Manual de HTML: Formularios

Procesar formularios HTML con PHP

Veamos cómo procesar formularios HTML con PHP.

El protocolo HTTP admite dos métodos para pasar información entre páginas, get y post, el cual debe ser especificado en los formularios en el atributo method.

  • get: cuando un formulario se envía utilizando el método get los datos viajan junto con la URL de la página que los recibirá, por lo que en la barra de direcciones se verá lo siguiente:
    http://servidor/receptor.php?nombre=valor&mensaje=valor&enviar=enviar

    Para recuperar la información enviada por la página, el script receptor utilizará la variable $_GET, que es una colección que contiene todo lo recibido desde el cliente. Por ejemplo, para obtener el valor del cuadro de texto name="nombre" haremos:

    $nombre = $_GET["nombre"];
  • post: cuando un formulario se envía utilizando el método post los datos viajan codificados dentro de la negociación entre el cliente y el servidor, de modo que no son visibles en la URL.

    Para recuperar la información enviada por la página, el script receptor utilizará la variable $_POST, que es una colección que contiene todo lo recibido desde el cliente. Por ejemplo, para obtener el valor del cuadro de texto name="nombre" haremos:

    $nombre = $_POST["nombre"];

Veamos por ejemplo un script que procesa un formulario cualquiera y visualiza todas las variables del método post disponibles.

<?php
// receptor.php
$tiene = array();
$no_tiene = array();
// recorremos $_POST con foreach ya que es una matriz asociativa
foreach ($_POST as $nombre_var => $valor_var) {
    if (empty($valor_var)) {
        $no_tiene[$nombre_var] = $valor_var;
    } else {
        $tiene[$nombre_var] = $valor_var;
    }
}
// var_dump() vuelca informacion estructurada sobre una variable
echo "<pre>";
$total = count($no_tiene) + count($tiene);
echo "total variables: ".$total."<br />";
echo "variables definidas: ".count($tiene)."<br />";
var_dump($tiene);
if (!empty($no_tiene)) {
    echo "variables vacias: ".count($no_tiene)."<br />";
    var_dump($no_tiene);
}
echo "</pre>";
?>

El resultado será, por ejemplo:

total variables: 3
variables definidas: 2
array(2) {
  ["nombre"]=> string(3) "Bob"
  ["enviar"]=> string(6) "enviar"
}
variables vacias: 1
array(1) {
  ["mensaje"]=> string(0) ""
}

Recursos

Artículos en la categoría "Manual de PHP"

  1. Manual de PHP: Estructuras de control
  2. Manual de PHP: Funciones
  3. Manual de PHP: Objetos
  4. Manual de PHP: Formularios web
  5. Manual de PHP: Imágenes
  6. Manual de PHP: XML
  7. Manual de PHP: MySQL
  8. Manual de PHP: Sesiones
  9. Manual de PHP: Matrices
  10. Manual de PHP: Expresiones regulares
  11. Manual de PHP: Sanear datos de usuario
  12. Manual de PHP: Email
  13. Manual de PHP: Evitar el hotlinking de los buscadores