Ir a las Notas | Ir a Otros Tutoriales |
In English (en Inglés)
Auf deutsch (en Alemán), traducido por
Friedemann Wachsmuth
Em português (en portugués)
traducido por
Claudio F. Chagas
In het Nederlands (en holandés),
traducido por
Simon Amstel
Asi que son las 4:00, tu jefe necesita un script CGI escrito para las 4:30, y ni siquiera sabes qué significa CGI. Has venido al lugar correcto.
No hay mucho al respecto, a pesar de cualquier chisme intimidatorio que hayas podido oir. Si puedes leer de STDIN y escribir a STDOUT, entonces puedes escribir scripts CGI. Si ya eres un programador, este preliminar puede enseñarte lo básico de CGI en unos cuantos minutos. Si no eres programador, este preliminar no te ayudará mucho-- lo siento. Aprende un poco de programación, incluso scripts de shell y regresa después. ¡Buena suerte!
Este preliminar se enfoca a escribir scripts CGI para procesar formas HTML en el Web. Se salta algunos detalles, pero puede hacerlo muy rápido (literalmente una hora o menos), y cubre el 90% de las situaciones en el mundo real. Cuando tengas la necesidad, checa las especificaciones completas CGI. Para ayuda con la escritura de formas HTML, ve este fragmente del tutorial, o esta documentación en NCSA.
Una vez que hayas leído esta página, ve las notas para scripts de ejemplo y otros temas.
Aquí está la secuencia típica de un script CGI:
El primer y último pasos se describen abajo.
Cuando el usuario envía la forma, tu script recibe los datos como un conjunto de pares nombre-valor. Los nombres que definiste en las etiquetas INPUT (o etiquetas SELECT o TEXTAREA), y los valores son cualquier cosa que el usuario haya escrito o seleccionado. (Los usuarios también pueden enviar archivos con formas, pero este preliminar no lo cubre.)
Este conjunto de pares nombre-valor se te envía como una sola larga cadena, la cual debes procesar. No es muy complicado, y existen muchas rutinas que lo hacen por tí. Aquí está una en Perl, una más simple en Perl, o una en C. Para un ambiente más elaborado de CGI, ve el módulo Perl's CGI.pm. El directorio CGI en Yahoo incluye muchas rutinas CGI (y scripts ya escritos), en varios lenguajes..
Si esto ya te es suficiente, salta a la siguiente sección. Si no lo es, o simplemente eres curioso, aquí está el formato de una cadena larga:
"nombre1=valor1&nombre2=valor2&nombre3=valor3"Así que solamente divide en los ampersands y signos de igual. Entonces, haz dos cosas más para cada nombre y valor:
Esto es necesario porque la cadena larga original es código-URL, para permitir signos de igual, ampersands, y otros en la entrada del usuario.
- Convierte todos los caracteres "+" en espacios, y
- Convierte todas las secuencias "%xx" en el caracter cuyo valor ascii sea "xx", en hexadecimal. Por ejemplo, convierte "%3d" en "=".
Entonces de dónde obtienes la cadena larga? Eso depende del método HTTP que la forma haya usado:
- Para GET envíos, está en la variable de entorno QUERY_STRING.
- Para POST envíos, léelos de STDIN. El número exacto de bytes a leer está en la variable de entorno CONTENT_LENGTH.
(Si te estás preguntando sobre la diferencia entre GET y POST, ve la nota de discusión. Respuesta corta: POST es más de propósito general, pero GET está bien para formas pequeñas.)
Primero, escribe la línea
Content-type: text/htmlmas otra línea en blanco a. Después de eso, escribe tu página de respuesta HTML en STDOUT, y se enviará al usuario cuando tu script termine de ejecutarse. Eso es todo.
Si, estás generando código HTML en pleno vuelo. No es muy difícil, es en realidad bastante sincero. El HTML fue diseñado para ser suficientemente simple para generarse así.
Si quieres enviar de regreso una imágen u otra respuesta no-HTML, aquí está cómo hacerlo.
¿Ves qué fácil es? Si todavía no me crees, adelante y escribe un script. Asegúrate de poner el archivo en el lugar correcto en tu servidor, y hacerlo ejecutable; revisa esta nota para más consejos.
Antes de que escribas muchos scripts, aprende sobre asuntos de seguridad CGI.
Cuando necesites saber más sobre CGI, ve la especificación completa de CGI en NCSA. W3C también mantiene una página CGI con ligas a cualquier documento que puedas necesitar.
Oh sí, CGI quiere decir Common Gateway Interface-- en otras palabras, un método estándar ("común") de comunicación ("interfaz") entre diferentes procesos (tipo de "gateway").
Ve la Página de Notas para los temas siguientes:
Ultimo Modificado: Abril 18, 1998 | http://www.jmarshall.com/easy/cgi/spanish/ |