Difference between revisions of "CGI Web Programming/es"
(New page: {{CGI Web Programming}} Este es el comienzo de una tutoría sobre programación web con la interfaz CGI. Estáis Todos invitados a contribuir. == Sobre CGI == [http://es.wikipedia.org/wi...) |
m |
||
Line 1: | Line 1: | ||
− | {{CGI Web Programming}} | + | {{CGI Web Programming}}[[category:Castellano|T]][[category:Español|Tutoría]] |
Este es el comienzo de una tutoría sobre programación web con la interfaz CGI. Estáis Todos invitados a contribuir. | Este es el comienzo de una tutoría sobre programación web con la interfaz CGI. Estáis Todos invitados a contribuir. | ||
Line 40: | Line 40: | ||
uses dos; | uses dos; | ||
− | var | + | var |
− | + | a:string; | |
− | + | c:char; | |
− | begin | + | begin |
− | + | //set a cookie (must come before content-type line below) | |
− | + | //don't forget to change the expires date | |
− | writeln('Set-cookie:widget=value; path=/; expires= Mon, 21-Mar-2005 18:37:00 GMT'); | + | writeln('Set-cookie:widget=value; path=/; expires= Mon, 21-Mar-2005 18:37:00 GMT'); |
− | + | //output legal http page | |
− | + | writeln('Content-Type:text/html',#10#13); | |
− | + | //demonstrate get cookies | |
− | + | a:= GetEnv('HTTP_COOKIE'); | |
− | + | writeln('cookies:',a); | |
− | + | //demonstrate GET result | |
− | + | a:=''; | |
− | + | a:= GetEnv('QUERY_STRING'); | |
− | + | writeln('GET: ',a); | |
− | + | //demonstrate POST result | |
− | + | a:=''; | |
− | + | while not eof(input) do | |
− | + | begin | |
− | + | read(c); | |
− | + | a:= a+c; | |
− | + | end; | |
− | + | writeln('POST: ',a); | |
− | end. | + | end. </delphi> |
− | </delphi> | ||
==Un contador simple== | ==Un contador simple== | ||
Line 78: | Line 77: | ||
Puedes encontrar el código aquí: | Puedes encontrar el código aquí: | ||
[http://modelbuilder.svn.sourceforge.net/viewvc/modelbuilder/html/cgi/] | [http://modelbuilder.svn.sourceforge.net/viewvc/modelbuilder/html/cgi/] | ||
− | |||
==Marcos de trabajo para CGI existentes== | ==Marcos de trabajo para CGI existentes== |
Revision as of 22:28, 29 August 2010
│
English (en) │
español (es) │
français (fr) │
Bahasa Indonesia (id) │
русский (ru) │
中文(中国大陆) (zh_CN) │
Este es el comienzo de una tutoría sobre programación web con la interfaz CGI. Estáis Todos invitados a contribuir.
Sobre CGI
CGI Interfaz de entrada común (Common Gateway Interface) funciona de forma sencilla:
Tenemos dos equipos:
- Servidor - Este equipo almacenará los archivos alojados (páginas web, imágenes y CGI);
- Cliente - Generalmente, este equipo dispone de un navegador para solicitar los archivos alojados en el ordenador servidor.
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]
Notas:
- El archivo CGI no requiere de la extensión .exe.
- El CGI debe ser (obviamente) compilado para la plataforma (máquina/sistema operativo) del ordenador servidor (Linux, Windows, ...)
Sobre FreePascal CGI y cómo puedes probar tus módulos CGI
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.
Para probar un CGI, debes tener instalado en tu PC un Servidor HTTP con soporte para CGI. Un Servidor HTTP bueno, y recomendable es http://es.wikipedia.org/wiki/Servidor_HTTP_Apache Apache], disponible para Linux y Windows. Otro Servidor HTTP es Xitami que soporta CGI en perl y 16 bits (pero Xitami es muy arcaico).
Un ejemplo muy básico
Este es un ejemplo de un programa CGI mínimo que muestra...
- Configuración de una galleta (cookie)
- Generar el tipo de contenido (es decir, enviar texto válido para HTTP)
- Leer galletas (cookies)
- Leer datos de un formulario a través de GET
- Leer datos de un formulario a través de POST
<delphi> program mini;
uses dos;
var a:string; c:char; begin //set a cookie (must come before content-type line below) //don't forget to change the expires date writeln('Set-cookie:widget=value; path=/; expires= Mon, 21-Mar-2005 18:37:00 GMT');
//output legal http page writeln('Content-Type:text/html',#10#13);
//demonstrate get cookies a:= GetEnv('HTTP_COOKIE'); writeln('cookies:',a); //demonstrate GET result a:=; a:= GetEnv('QUERY_STRING'); writeln('GET: ',a);
//demonstrate POST result a:=; while not eof(input) do begin read(c); a:= a+c; end; writeln('POST: ',a); end. </delphi>
Un contador simple
La aplication 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.
Puedes encontrar el código aquí: [1]
Marcos de trabajo para CGI existentes
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). VerPowtils
También hay un CGIModule para lazarus, y unos pocos unidades para CGI y HTML en la FCL de freepascal.
Otro marco para CGI y FastCGI para FreePascal / Delphi es ExtPascal un envoltorio Ext JS.