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:
<?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:
<?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>"); ?>