Para introducir un CGI en un WEB es necesario usar el lenguaje HTML. Existen tres formas de hacerlo:
- Usando la etiqueta A:
<a http="direccion_del_CGI">Texto</a>
- Usando la etiqueta IMG:
<img src="direccion_del_CGI">
- Usando un formulario (este m�todo se tratar� m�s adelante en detalle):
<form action="direccion_del_CGI" > <!-- Elementos del formulario --> </form>
El primer m�todo s�lo sirve para scripts sencillos y se us� en su d�a para crear mapas de im�genes situados en el servidor. Hoy en d�a no es muy usado.
El segundo m�todo suele servir para invocar un CGI que da como respuesta una imagen.
Un ejemplo de este tipo de uso son los contadores. En ellos, cuando el navegador llega a esta l�nea del c�digo HTML pide al servidor que le mande un archivo con el nombre direccion_del_CGI. El servidor se dar� cuenta que en realidad lo que debe hacer es ejecutar el programa de ese nombre. Este programa, que ser� un script CGI, busca en una base de datos (que puede ser m�s o menos complicada), cuantos accesos ha habido hasta ahora y env�a al navegador la imagen adecuada. La imagen ser� (como habr�s adivinado ya) un n�mero correspondiente al n�mero de visitas recibidas, incluida la tuya.
El tercer m�todo es sin duda el m�s vers�til y usado de todos, y en al que prestaremos mayor atenci�n de ahora en adelante. Su funci�n es procesar los datos provenientes de un formulario.
�Un ejemplo simple
Vamos a entrar en materia creando un CGI simple, cuya funci�n ser� dar la hora actual cuando el usuario lo pida.
El c�digo HTML que se incluir� en la p�gina ser� el siguiente:
<a href="http://www.unsitio.es/cgi-bin/fecha"> Dime la fecha </a>
Cuando el navegante pulse sobre el texto Dime la fecha se enviar� una petici�n al servidor y se ejecutar� el CGI, tal y como hemos visto antes.
El programa necesario para generar la fecha es muy sencillo, as� que hemos elegido como lenguaje de programaci�n bash:
#!/bin/bash echo Content-type: text/plain echo /bin/date
La primera l�nea simplemente dice que se debe usar el int�rprete de bash para ejecutar este programa, es necesario indicarlo siempre que programemos en bash.
Las dos l�neas siguientes usan el comando echo cuya funci�n es mandar el texto a continuaci�n por la entrada est�ndar. En el caso de los CGIs todo lo que vaya por la entrada est�ndar ser� recogido por el servidor Web y mandado al navegador. El est�ndar CGI establece que la primera l�nea que se env�e debe ser de la forma:
Content-type: Tipo Mime
En este caso el tipo Mime es text/plain para indicar que todo lo que vamos a enviar al navegador ser� texto. La l�nea siguiente a esta debe estar en blanco, lo que conseguimos con otra llamada al comando echo.
La �ltima l�nea del programa es la que realmente realiza toda la funcionalidad. Llama al programa de Unix /bin/date que devuelve la fecha actual por la entrada est�ndar. Entonces es mandada al Navegador que la muestra por pantalla.