Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Tutoriales > Internet > CGI > Introducción a los CGIs
-Tutoriales

Introducción a los CGIs


CGIs para procesar formularios

. Conceptos básicos

Esta es la función más común para los CGIs hoy en día. Llamar a un CGI directamente desde un enlace, como hemos hecho hasta ahora, sólo permite pasarle unos parámetros fijados al escribir el código HTML de la página. Los formularios permiten que el navegante introduzca toda clase de información, que sea mandada al servidor y procesada por el CGI. Los programas usados son los mismos que hemos visto hasta ahora.

Cómo ya vimos al hablar de formularios, la forma de indicar la dirección del programa CGI que debe procesar la información se indica en el atributo ACTION:

<form action="cgi-bin/procesaform">
</form>

Cuando el usuario pulse al botón de envío del formulario el navegador llamará al CGI y mandará con la llamada toda la información que se haya introducida. Esta información estará codificada en pares nombre_campo/valor. Además la información sufrirá una codificación especial, siguiendo las siguientes normas:

  • Cada par nombre_campo/valor está separado por un ampersand: &
  • Los valores están del nombre del campo por el signo igual: =
  • Todos los caracteres especiales, es decir, aquellos que no pertenezcan al ASCII de 7 bits serán codificados con tres símbolos: Un signo de porcentaje y un valor hexadecimal de dos dígitos indicando su número de ASCII extendido: %NN

    También serán enviados de esta manera los caracteres especiales, incluyendo &, = y % para no confundir cuando se usan como datos y cuando se usan como carácter de control.

  • Por último todos los espacios se codifican con el signo +.

Debido a esta codificación lo primero que debe hacer todo CGI será llevar a cabo una decodificación.

. GET y POST

Los dos métodos para mandar la información asociada a un formulario son GET y POST. Cual usará el navegador se indicará en el código HTML con el atributo METHOD.

Si usamos GET todos los datos se almacenarán en la variable de entorno QUERY_STRING, y el programa CGI debe leerlos de ahí. El problema es que esta variable suele tener una longitud limitada. En ocasiones esta limitación es de 256 caracteres, lo que limita su uso a formularios muy sencillos. Cabe decir que en los casos de la sección anterior en los que invocábamos a un CGI con la etiqueta A, estábamos usando este método.

Si usamos POST el CGI recibirá los datos por la entrada estándar, y por tanto no hay limitación en el tamaño de los mismos. Si es necesario conocer dicho tamaño para procesar los datos puede obtenerse leyendo la variable de entorno CONTENT_LENGTH. Éste es el método más seguro de usar y por tanto el más utilizado.

. Variables de un CGI

Como hemos visto, es habitual que un CGI deje información en una variable de entorno. Existen una serie de variables extra donde se almacena información de gran utilidad, como la dirección IP del navegante, el navegador que usa, etc. Las más importantes están resumidas en la siguiente tabla:

Variable Significado
SERVER_NAME Dirección IP del host donde está el CGI.
SERVER_SOFTWARE Tipo de servidor Web que se está usando.
GATEWAY_INTERFACE Versión del interfaz CGI.
SERVER_PROTOCOL Versión del protocolo HTTP.
SERVER_PORT El puerto TCP que se está usando. En la mayoría de servidores Web es el 80.
REQUEST_METHOD Método de envío de información: POST o GET.
HTTP_ACCEPT Lista de los tipos MIME (content-types) que acepta el navegador.
HTTP_USER_AGENT El navegador usado por el usuario.
HTTP_REFERER Dirección URL del documento HTML donde estaba el formulario.
PATH_INFO Información extra (visto antes)
PATH_TRANSLATED La variable PATH_INFO adaptada al sistema específico donde está el CGI.
SCRIPT_NAME Nombre del CGI.
QUERY_STRING Argumentos pasado al CGI.
REMOTE_HOST Nombre del ordenador que envió los datos.
REMOTE_ADDR Dirección IP de dicho ordenador.
REMOTE_USER Nombre del usuario.
REMOTE_IDENT Sirve para el método de identificación ident.
CONTENT_TYPE Tipo de información que llega por la entrada estándar. Por defecto será: x-www-form-urlencoded que es la codificación que hemos visto antes.
CONTENT_LENGTH Longitud de los datos que llegan por la entrada estándar cuando hemos usado POST.
 
Utilidades
Leer comentarios (0)
Escribir comentario
  Puntuación:
(1 voto)
Votar
Recomendar este tutorial
Estadísticas
 
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network