5. COMO USAR LOS DATOS DE UN FORMULARIO

Una vez dominamos la creación, y diseño, de formularios en las páginas Web probablemente nos estamos preguntando ¿cómo puedo hacer que me lleguen los datos?. La respuesta a esta pregunta va mas allá del lenguaje HTML. Requiere la puesta en acción de unos programillas llamados CGIs, que se ejecutan en el servidor y que pueden estar escritos en prácticamente cualquier lenguaje de programación.

Estos programas deben encontrarse en algún lugar del servidor Web. Al enviar un formulario a uno, éste procesará la información y contestará con la respuesta oportuna. Esta respuesta será en general o bien la dirección de una página o bien una página creada por el propio CGI. ¿Cómo se envía información a un CGI?. Hasta ahora habíamos omitido este detalle, pero la etiqueta FORM consta de un atributo llamado ACTION donde debemos especificar la dirección URL del programa CGI donde deben enviarse los datos. Además debe usarse otro atributo, METHOD , para indicarle cómo se mandarán estos datos. Este atributo puede tomar dos valores GET y POST, omitiendo todos los detalles, podemos decir que el primero se usa con formularios pequeños, mientras que el segundo será el escogido para formularios donde la cantidad de información es grande. Una vez hemos visto estos atributos hemos de decir que para que los ejemplos que hemos visto funcionen cuando los publicamos en Internet habrá que añadírselos a la etiqueta <FORM>. Veamos un ejemplo:

      <FORM METHOD="post"
	ACTION="http://www.miservidor.es/cgi-bin/
	programaCGI">
      
	<!-- Código para insertar los distintos controles -->
      
      </FORM>

    

En este caso hemos supuesto la existencia de un CGI llamado programa CGI situado en el directorio cgi-bin (este es el nombre habitual del directorio donde suelen estar los CGIs) de nuestro servidor. El navegador mandará a este programa los datos del formulario codificado con un código especial, cuyo tipo MIME es application/x-www-form- urlencoded. En algunos de los ejemplos de este capítulo hemos visto ejemplos de como funciona esta codificación. La etiqueta FORM, tiene un atributo, ENCTYPE, que nos permitirá cambiar el tipo de codificación. Si no queremos usar ninguna podemos escribir:

      <FORM ENCTYPE="text/plain"
	METHOD="post"...>
      </FORM>

    

No usar codificación podrá ocasionar problemas al enviar caracteres especiales como son las letras acentuadas, pero puede ser útil en ocasiones, al no ser necesario decodificar el mensaje.

La creación de los programas CGI excede los límites de esta sección dedicada al lenguaje HTML, pero será cubierta en detalle más adelante debido a la gran importancia que tienen estos programas en la programación de Internet y en concreto de páginas Web. Hasta entonces veremos algunos métodos alternativos que nos permitirán hacer uso de los formularios que hemos creado sin necesidad de CGIs.

5.1. Formularios sin CGIs

Sin duda los programas CGIs permiten realizar muchas más cosas que cualquier otro método, pero la necesidad de conocer un lenguaje de programación nos lleva a buscar métodos alternativos que serán suficientemente buenos si no tenemos demasiados requerimientos.

Una alternativa a los CGIs son los lenguajes de script, que nos permitirán interactuar con el navegante sin hacer uso del servidor. Pero la alternativa en la que nos centraremos aquí será otra, que se basa en la posibilidad de mandar todos los datos de un formulario a una dirección de correo electrónico. Esto es suficiente para el ejemplo de la práctica 6, ya que simplemente necesitamos conocer los datos del usuario para mandar el catálogo, no necesitamos interactuar con él en manera alguna. Para conseguir que los datos de un formulario sean enviados por e-mail debemos usar las etiquetas ACTION, METHOD y ENCTYPE de la siguiente manera:

	<FORM ACTION="mailto:milogin@midireccion.es"
	  ENCTYPE="text/plain"
	  METHOD="post">
	<!-- ... -->
	</FORM>

      

Donde hemos usado como ejemplo la dirección de correo electrónico milogin@midireccion.es, que debe ser sustituida por aquella a la que queramos enviar los datos, que en general será la nuestra como creadores del Web.

Nota

La función del atributo ENCTYPE="text/plain" es enviar los datos sin ninguna codificación. Esto es conveniente para facilitar la lectura de los mismos, pero no necesaria. De hecho, en algunos casos aislados puede ser preferible no usar este atributo y usar la codificación por defecto.

Al pulsar sobre el botón de envío el navegador advertirá al usuario (ver figura 12.33) que la página quiere enviar un e-mail , si el usuario acepta enviará los datos del formulario.

Figura 12.33. Como método alternativo a los CGIs pueden mandarse los datos del formulario por correo electrónico. En ese caso el navegador pedirá al usuario confirmación de la acción.

Nota

Al contrarió que los CGIs, el método alternativo que envía por correo electrónico los datos del formulario puede no funcionar con algunos navegadores. Sin embargo actualmente un gran número de ellos, incluyendo Netscape Navigator , Internet Explorer y Opera, soporta esta característica, por lo que podemos usarlo con suficientes garantías.

Con este método alternativo podemos empezar a usar todos los formularios que hemos visto hasta ahora, y practicar con ellos. Cuando, más adelante, estudiemos a fondo los CGIs veremos como nuestras posibilidades se incrementan enormemente.