Professional Documents
Culture Documents
Antes de entrar de lleno en el tema, es conveniente precisar que las dificultades de comprensin de las plantillas HTML se justifican debido a que constituyen un caso singular dentro de la programacin hipertextual normal. En efecto, la mayor parte de los elementos HTML de que disponemos permite al visitante visualizar los contenidos de un sitio, pero no interactuar con l. Dicho de otro modo, la relacin usuario/pgina es unidireccional y esttica. Con las plantillas, por el contrario, el usuario puede interactuar con el sitio enviando sus comentarios, haciendo peticiones sin necesidad de escribir mensajes por correo electrnico, firmando en el libro de visitas, contestando a encuestas y sondeos, etc. Todo ello define una relacin bidireccional, que es posible slo gracias a la intervencin de programas residentes en servidores WWW: se trata de los denominados CGI o Common Gateway Interface (Interfaz Comn de Pasarela). Estos programas hacen posible lo que no podra hacerse si se actuara desde el lado client. Es decir, la gestin de las plantillas depende, en realidad, ms del servidor que de la programacin HTML propiamente dicha. Para que un formulario HTML funcione es necesario disponer de un CGI residente en el propio servidor o en otro sitio. El web no escatima los servicios gratuitos destinados justamente a este fin. A menudo se trata de CGI gratuitos que las comunidades virtuales (Geocities, Tripod, Xoom, etc.) ponen a disposicin de sus propios ciudadanos, pero no faltan servicios especficos gratuitos no relacionados con estas comunidades. Para los ms despabilados, es aconsejable dirigirse a la fuente e importar personalmente en el propio servidor uno de los numerosos programas CGI distribuidos gratuitamente por los propios autores y recopilados en sitios especficos. A decir verdad, un formulario puede elaborarse tambin sin pasar por un CGI, pero las desventajas y lmites que comporta este procedimiento no pueden obviarse por lo que no debera adoptarse sino en casos de extrema necesidad. En las pginas que siguen trataremos tambin detalladamente esta posibilidad. La elaboracin de una plantilla consta de dos fases: impostacin de las marcas para la creacin de la plantilla, de los campos y del botn de envo; elaboracin de un script CGI en servidor (o llamamiento de un script ya impostado)
Las plantillas se introdujeron en la versin HTML 2.0. Veamos ahora, con detalle, todas las marcas que para la elaboracin de formularios prev HTML 4.0. <FORM></FORM> Esta marca abre y cierra la plantilla y recoge el contenido de la misma, que puede variar segn una serie de marcas que veremos ms adelante. No es posible insertar una plantilla dentro de otra. Dicho de otro modo, los formularios no permiten anidamientos. La sintaxis usual de las marcas citadas es la siguiente: <FORM method="get|post" action="http://www.tuosito.com/cgibin/nome_script.cgi"> Si METHOD est impostado como GET los datos se envan al servidor y se separan en dos variables. Para este mtodo el nmero mximo de caracteres que puede contener el formulario es de 255. Utilizando "method=post", el script CGI recibe directamente los datos sin un proceso previo de descodificacin. Esta caracterstica hace que el script pueda leer una cantidad ilimitada de caracteres. Una vez impostada la primera marca <FORM> de la plantilla, es posible, siempre y cuando el script CGI lo permita, crear algunos elementos que resultan de gran utilidad para una adecuada gestin de los datos: <INPUT TYPE=HIDDEN NAME=MAILFORM_SUBJECT VALUE="Asunto del formulario"> Este cdigo determina el asunto (subject) del mensaje que recibirs por correo electrnico con el contenido del formulario. Es muy til que los mensajes recibidos lleven especificado el asunto, no slo para quienes usan filtros de seleccin del correo, sino tambin para ordenar la correspondencia. <INPUT TYPE=HIDDEN NAME=MAILFORM_URL VALUE="http://www.tuosito.it"> Este cdigo es muy til ya que, una vez rellenado y enviado correctamente, el formulario responde con una pgina HTML sucesiva, dentro de la cual es posible incluir cualquier tipo de comentario. Lo ms normal es visualizar una pgina de confirmacin "Tu formulario ha sido enviado correctamente", pero se puede tambin mandar directamente a la portada del sitio. Se trata de comandos no estndar que varan segn el CGI utilizado. Por tanto, el cdigo antes descrito no funciona en todos los casos, sino nicamente con el ejemplo prctico que os mostraremos ms adelante. La marca de base para la definicin de los elementos de un formulario es <INPUT>, que se utiliza para agregar botones, mens de seleccin, contraseas, etc. A <INPUT> se le pueden asignar los 8 valores que analizamos a continuacin.
type="TEXT"
<INPUT type="TEXT" name="nombre" maxlength="40" size="33" value="Tu nombre">
Este valor crea los tpicos campos de texto, en los que generalmente se solicitan datos tales como el nombre o la direccin de correo electrnico. Es un valor usado sobre todo para informaciones no predefinidas, que cambian cada vez. TEXT tiene tres atributos opcionales, presentes tambin en el ejemplo: maxlength (el nmero mximo de caracteres que puede ser introducido en el campo y que no es posible superar), size (la anchura de la cadena dentro de la pgina) y value (visualiza un texto por defecto dentro de la cadena). EJEMPLO
tu nombre
type="PASSWORD"
<INPUT type="PASSWORD" name="nombre" maxlength="40" size="33"> Este campo de texto funciona como el anterior, pero con una pequea diferencia que su propio nombre indica: cuando se escribe dentro del cajetn blanco, no se ven los caracteres sino los clsicos asteriscos de las contraseas. En realidad, los datos no se codifican de ningn modo por lo que esta marca no consigue eliminar la inseguridad de fondo. EJEMPLO
type="CHECKBOX"
<INPUT type="CHECKBOX" name="edad" value="s" checked> Este atributo se utiliza para representar datos de tipo "s/no" y "verdadero/falso". Crea pequeas casillas cuadradas que hay que puntear o dejar en blanco. Si la casilla est punteada, INPUT restituye un valor al CGI; en caso contrario, no restituye ningn valor. Value impostado en "s" significa que por defecto la casilla est punteada. Checked controla el estado inicial de la casilla, en el momento de cargar la pgina. EJEMPLO
type="RADIO"
<INPUT type="RADIO" name="calificacin" value="suficiente"> <INPUT type="RADIO" name="calificacin" value="bueno"> <INPUT type="RADIO" name="calificacin" value="excelente"> Este atributo tiene funciones similares al visto anteriormente, pero contiene ms posibilidades de seleccin. Seleccionando una de las voces presentes, y siempre y cuando tengan todas un valor "name" idntico, las restantes se deseleccionan automticamente. SUFICIENTE
BUENO EXCELENTE
type="SUBMIT"
<INPUT type="SUBMIT" value="Enva"> El clsico botn de envo que remite el formulario con todo su contenido. La dimensin del botn depende de la longitud del texto.
Enva
EJEMPLO
type="RESET"
<INPUT type="RESET" value="Reinicio"> Botn que vuelve a impostar todo el formulario eliminando los datos introducidos.
Reinicio
EJEMPLO
type="IMAGE"
<INPUT type="IMAGE" src="pulsante.gif"> Funcin similar a la de la tecla "ENVA" pero con la diferencia de que en lugar del botn de la opcin por defecto, aparece una imagen.
EJEMPLO
TEXTAREA
<TEXTAREA cols=40 rows=5 WRAP="physical" name="comentario"></textarea> TEXTAREA se utiliza para introducir comentarios o campos que prevn muchas lneas de texto. La anchura se imposta con "cols" y la altura con "rows". WRAP="physical" establece que, en el caso de que el texto
SELECT
<SELECT size=1 cols=4 NAME="calificacin"> <OPTION selected value=ninguna> <OPTION value=bueno> Bueno <OPTION value=suficiente> Suficiente <OPTION value=excelente> Excelente </select> SELECT es un elemento que permite la creacin de listas con varias posibilidades de seleccin. En nuestro ejemplo, hemos hipotizado que se solicita una calificacin sobre un sitio web. EJEMPLO
los elementos denominados, en una especie de concatenacin. He aqu, a continuacin, el confuso resultado de un formulario en el que, sin pasar por un CGI, se han introducido algunos datos personales: Nombre=Massimiliano+Valente&E-mail=webmaster@html.it&ciudad %27=Roma&edad%25 mientras que con un CGI habramos obtenido el siguiente resultado: (Nombre) Massimiliano Valente (Email) webmaster@html.it (Ciudad) Roma (Edad) 25 Si para una plantilla muy simple la "criba" del contenido propiamente dicho es una operacin rpida, para formularios largos y complejos (y numerosos) resulta una va difcilmente practicable y en absoluto profesional.