Sign in Join
Wiki copytemporary

CGI Web Programming/es: what changed

Revision 0 to 1. Removed lines have a minus sign; added lines have a plus sign.

Title: CGI Web Programming/es

OldNewLine
1+Este es el comienzo de una tutoría sobre programación web con la interfaz CGI. Estáis Todos invitados a contribuir.
2+
3+## Sobre CGI
4+
5+[**CGI** Interfaz de entrada común (Common Gateway Interface)](http://es.wikipedia.org/wiki/Interfaz_de_entrada_com%C3%BAn) funciona de forma sencilla:
6+
7+Tenemos dos equipos:
8+
9+- Servidor - Este equipo almacenará los archivos alojados (páginas web, imágenes y CGI);
10+- Cliente - Generalmente, este equipo dispone de un navegador para solicitar los archivos alojados en el ordenador servidor.
11+
12+Usted puede utilizar CGI sólo si su servidor cuenta con soporte para CGI. Trás el alojamiento, CGI puede ser utilizado normalmente así: **http://www.turservidor.es\[.xx\]/tuAutenticación/cgi-bin/nombredetucgi\[.exe\]**
13+
14+**Notas:**
15+
16+- El archivo CGI no requiere de la extensión **.exe**.
17+- El CGI debe ser (obviamente) compilado para la plataforma (máquina/sistema operativo) del ordenador servidor (Linux, Windows, ...)
18+
19+## Sobre *FreePascal CGI* y cómo puedes probar tus módulos CGI
20+
21+Un *Free Pascal CGI* es un programa ejecutable normal, como cualquier programa de tu ordenador. A diferencia de los CGI en Perl, *Free Pascal CGI* no es interpretado. Es un programa ejecutable independiente.
22+
23+Para probar un CGI, debes tener instalado en tu PC un **Servidor HTTP** con soporte para CGI. Un [Servidor HTTP](http://es.wikipedia.org/wiki/Servidor_web) bueno, y recomendable es <http://es.wikipedia.org/wiki/Servidor_HTTP_Apache> Apache\], disponible para Linux y Windows. Otro **Servidor HTTP** es [Xitami](http://en.wikipedia.org/wiki/Xitami) que soporta CGI en perl y 16 bits (pero **Xitami** es muy arcaico).
24+
25+## Un ejemplo muy básico
26+
27+Este es un ejemplo de un programa CGI mínimo que muestra...
28+
29+1. Configuración de una galleta (*cookie*)
30+2. Generar el tipo de contenido (es decir, enviar texto válido para HTTP)
31+3. Leer galletas (*cookies*)
32+4. Leer datos de un formulario a través de GET
33+5. Leer datos de un formulario a través de POST
34+
35+``` pascal
36+ program mini;
37+
38+ uses dos;
39+
40+ var
41+ a:string;
42+ c:char;
43+ begin
44+ //set a cookie (must come before content-type line below)
45+ //don't forget to change the expires date
46+ writeln('Set-cookie:widget=value; path=/; expires= Mon, 21-Mar-2005 18:37:00 GMT');
47+
48+ //output legal http page
49+ writeln('Content-Type:text/html',#10#13);
50+
51+ //demonstrate get cookies
52+ a:= GetEnv('HTTP_COOKIE');
53+ writeln('cookies:',a);
54+
55+ //demonstrate GET result
56+ a:='';
57+ a:= GetEnv('QUERY_STRING');
58+ writeln('GET: ',a);
59+
60+ //demonstrate POST result
61+ a:='';
62+ while not eof(input) do
63+ begin
64+ read(c);
65+ a:= a+c;
66+ end;
67+ writeln('POST: ',a);
68+ end.
69+```
70+
71+## Un contador simple
72+
73+La aplicaciónn **hitcounter** presenta un simple contador para tu sitio web. Es posible poner en listas de bloqueo en un archivo de configuración para así excluir los robots y tal vez tu propio ordenador de las estadísticas. Quedan un montón de mejoras posibles, como por supuesto establecer de una *cookie* para obtener sólo un recuento por sesión, pero da una buena introducción a la programación CGI. Si utilizas el código y lo modificas, por favor, envíame un parche para poder actualizarlo.
74+
75+Puedes encontrar el código aquí: [1](http://modelbuilder.svn.sourceforge.net/viewvc/modelbuilder/html/cgi/)
76+
77+## Marcos de trabajo para CGI existentes
78+
79+Existen unidades de CGI y los Marcos de trabajo que hacen el trabajo con CGI trivial (y permiten establecer las *cookies*, sesiones, recuperar POST y GET). Ver[Powtils](http://z505.com/powtils/idx.shtml)
80+
81+También hay un CGIModule para lazarus, y unos pocos unidades para CGI y HTML en la FCL de freepascal.
82+
83+Otro marco para CGI y FastCGI para FreePascal / Delphi es [ExtPascal](http://extpascal.googlecode.com) un envoltorio Ext JS.
84+
85+---
86+*From the Free Pascal wiki, page "CGI Web Programming/es", as it stood on 2020-02-10 after a change by Trev, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's [[Licensing]] page. If you have concerns about this material, [message the admin](/wiki-contact).*

Back to history