M�todos Avanzados / Formas y CGI

Formas y CGI
(CGI and Forms)

Vamos a ver un uso bien com�n de escritos CGI, procesando entradas del usuario suplidas en formas. Consideraremos ejemplos de ambos programas C y Perl aplicados al problema.

Un Ejemplo bien Simple
(A Very Simple Example)

Por ejemplo, la siguiente �rea para entrar texto es n ejemplo bien sencillo de una forma. Un uso t�pico de escritos de puente es para procesar informaci�n sometida en una forma a una p�gina de la Web. Para probarlo, escribe alg�n texto en el encasillado y despu�s oprime el bot�n denominado "Submit Query". Entonces, debes de ver otra p�gina que env�e la informaci�n que tu enviaste por eco. (Regresa a esta p�gina usando la funci�n "Back" del navegador).

Please enter some text here:

To submit the query, press this button: .

Observa que tenemos dos cosas trabajando juntas en este ejemplo. Primero, el texto es escrito en la forma; segunda, el texto es pasado a un programa que "procesa" esta informaci�n. En el presente caso el proceso es un poco trivial: la informaci�n se le regresa al cliente como un eco. Pero la escritura CGI puede ser designada a hacer mucho mas que esto con la informaci�n; veremos un ejemplo como tal en unos minutos.

La Etiqueta Form
(The Form Tag)

La forma en s� es simplemente HTML (aunque usando algunos mandatos de HTML que no hemos discutido hasta ahora). Esta forma esta hecha en una etiqueta de FORM y hay unos mandatos adicionales para producir elementos individuales en la forma (ej., encasillados para entrar texto, botones, etc.). He aqu� el c�digo que produce la forma anterior simple:

<FORM METHOD="POST" ACTION=

"http://csep10.phys.utk.edu/cgi-bin/post-query">

Please enter some text here:

<INPUT NAME="entry">

To submit the query, press this button:

<INPUT TYPE="submit"

VALUE="Submit Query">.

</FORM>

El programa que procesa la informaci�n entrada en esta forma, como quiera, NO es HTML. En este caso, el proceso esta hecho por un programa compilado C llamado post-query que reside en el subdirectorio cgi-bin del directorio guardando el software del servidor en una computadora con direcci�n IP de csep10.phys.utk.edu. Observa que la forma usa el valor asignado a "ACTION=" en la etiqueta para decirle al servidor que programa debe usar para entrar la informaci�n enviada desde la forma.

Mas Informaci�n sobre Construcci�n de Formas
(More Information on Constructing Forms)

Si estas interesado en aprender mas sobre la construcci�n de formas HTML, querr�s empezar por consultar las formas de este Tutor , y este juego de enlaces. El material te dir� mas sobre las �reas de entradas de texto, y mostrar� como usar otra elementos de formas (encasillados de marcas, botones de radio, listas desplegables, etc.). El documento anterior incluye numerosos ejemplos donde puedes practicar en el acto. Observa que mientras tu solo est�s interesada(o) en dise�ar formas (y no en hacer a la medida las maneras en que procesas la data entrada en las formas) puedes usar estos ejemplos como modelos para crear tus propias formas de trabajo y puedes practicar con tus creaciones con el programa post-query o en csep10.phys.utk.edo o en hoohoo.ncsa.uiuc.edu ( el cual procesa la forma del ejemplo en la direcci�n NCSA).

Ejemplos Mas Complejos
(More Complex Examples)

Para un ejemplo de una forma mas complicada (y mas complicado el proceso de data en una forma) esta en l�nea una peque�a prueba en Ciencia. Un ejemplo similar en la misma direcci�n presenta una formas que provee una peque�a prueba en astronom�a. Si vas a la p�gina donde est� la peque�a prueba de Ciencia, y usas el navegador para hojear los recursos del documento, notar�s la l�nea:

<form method="post"action="/cgi-bin/quizforms/galileo/qa.pl">

De esto vemos que la informaci�n entrada en esta forma es procesada por un programa llamado qa.pl (en la misma m�quina que est� la forma, la raz�n por la cual no ves un tipo de http url asignado a action= en este caso).

Este es un programa de escrito Perl el cual ha sido escrito espec�ficamente para manejar la informaci�n sometida por esta forma. En vez de simplemente entrar el texto en forma de eco como post-query lo hace, qa.pl examina la informaci�n sometida, extrae la parte que le corresponde a la contestaci�n de la pregunta, lo compara con la contestaci�n correcta para la pregunta (la cual est� guardada en la base de datos del servidor), y despu�s le presenta al usuario con una de varias posibles p�ginas de dependiendo si la contestaci�n correcta a la pregunta fue entrada o no. Esto ilustra que el escrito de un puente puede hacer mucho mas que simplemente enviar texto arbitrariamente como eco. Si tienes inter�s, aqu� hay una lista del programa (program)qa.pl.