You are on page 1of 3

38 de 48 http://www.masterlinux.

org EFGM 2000-2005



FORMULARIOS HTML Y PHP

El formulario de HTML es por excelencia la herramienta utilizada para
recolectar informacin de los usuarios que luego es enviada al servidor para ser
procesada. Los formularios estn constituidos por un conjunto de elementos
denominados controles, cuyo contenido puede ser editado o activado por el
cliente. Un control es bsicamente un elemento de HTML que pertenece a un tipo
y que tiene asociados un nombre y un valor. El envo se hace mediante un
controlador especial, generalmente un botn del tipo submit. Cuando el usuario,
despus de completar un formulario lo enva, en realidad est transmitiendo al
programa receptor un conjunto de parejas name y value correspondientes a los
nombres y a los valores de todos los controladores contenidos dentro del
formulario.



La etiqueta bsica para construir un formulario, esta constituida por los
atributos:

name, que especifica el nombre del formulario.

action, que contiene el nombre de la pgina o del script que recibir y
procesar los datos del formulario.

method, se refiere a la manera como la informacin ser enviada.

Si en PHP la directiva register_globals esta configurada en On, todos
los elementos contenidos dentro del formulario sern convertidos
automticamente a variables cuando el formulario sea enviado. En el ejemplo de
la grfica superior al enviar el formulario, el script programa.php recibir dos
variables: $apellidos cuyo valor es "Gaitn Martnez" y $enviar cuyo valor
es "Enviar".



39 de 48 http://www.masterlinux.org EFGM 2000-2005

Existen formas alternativas para acceder a la informacin enviada desde
un formulario. PHP crea un arreglo asociativo que contiene las variables que son
pasadas al script dependiendo del mtodo de envo. Si se utiliza GET, PHP crea el
arreglo $HTTP_GET_VARS y el arreglo $HTTP_POST_VARS si el mtodo
utilizado es POST. El siguiente ejemplo ilustra las diferentes formas de recuperar
variables desde un formulario HTML que utiliza el mtodo POST:

Cdigo de la pgina datos.html

<html>
<head>
<title>Datos</title>
</head>
<body>
<form action="variables.php" method="post" name="formulario">
<table width="80%" border="1">
<tr>
<td>Nombres <input name="nombres" type="text"></td>
<td>Apellidos <input name="apellidos" type="text"></td>
</tr>
<tr>
<td><input name="enviar" type="submit" value="Enviar"></td>
<td><input name="borrar" type="reset" value="Borrar"></td>
</tr>
</table>
</form>
</body>
</html>

Cdigo del script variables.php

<?php
print ("Forma clsica de obtener los valores<br>");
print ("Mi nombre es $nombres $apellidos <br>");
print ("Utilizando el arreglo POST <br>");
$nom = $HTTP_POST_VARS['nombres'];
$ap = $HTTP_POST_VARS['apellidos'];
print ("Mi nombre es $nom $ap <br>");
?>

El resultado de abrir en el navegador la pgina datos.html, suministrar los
datos solicitados y posteriormente dar clic en el botn Enviar ser similar al
siguiente:




40 de 48 http://www.masterlinux.org EFGM 2000-2005

Aunque existen ms mtodos soportados por PHP, los ms utilizados para
el envo de los datos provenientes de un formulario son GET y POST. El mtodo
GET simplemente aade la informacin a la URL separndola por un signo de
interrogacin. Las parejas nombre, valor del formulario son entonces visibles
en la barra de direcciones del navegador. El mtodo POST por el contrario,
transmite la informacin en el cuerpo de la solicitud HTTP. Es muy normal que
los formularios contengan contraseas y claves que no deben ser visibles a los
intrusos, lo que hace al mtodo GET inconveniente. En el ejemplo siguiente, que
utiliza el mtodo GET, el formulario contiene una contrasea:

Cdigo de la pgina get.html

<html>
<head>
<title>Datos</title>
</head>
<body>
<form action="get.php" method="get" name="formulario">
<table width="80%" border="1">
<tr>
<td>Contrasea <input name="clave" type="password"></td>
</tr>
<tr>
<td><input name="enviar" type="submit" value="Enviar"></td>
</tr>
</table>
</form>
</body>
</html>

Cdigo del script get.php

<?php
print ("Forma clsica de obtener los valores<br>");
print ("La contrasea es $clave <br>");
print ("Utilizando el arreglo GET <br>");
$cla = $HTTP_GET_VARS['clave'];
print ("La contrasea es $cla <br>");
?>

You might also like