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
- Ayuda de PHP: Dealing with Forms
hola gente http://www.vertutoriales.com/index.php/tag/ph/php/ espero que sirva