Home    Il software di andrearusso.it    Spazio radioascolto

Flusso di input ed output tra browser server web e programma CGI scritto in Delphi

Sviluppare CGI con Delphi e Kylix

Con Delphi è possibile sviluppare validi programmi CGI senza l'utilizzo di alcun componente.
Un CGI con Delphi può essere realizzato aprendo un nuovo progetto di tipo Console Application, cioè un classico programma di tipo DOS.

Se il programma ottenuto viene salvato nella directory CGI-BIN, ed eseguito aprendo il relativo URL con il browser, l'output verrà reindirizzato dal web server al browser.

Questo significa che se abbiamo scritto nel codice del programma il classico comando WriteLn('Prova');, la scritta apparirà nel nostro browser. Prima di tutto si deve sempre inviare un header che indica al browser il formato dell'output: ad esempio scrivendo WriteLn('Content-type: text/html'); si indica un output di tipo html.

Analogamente è possibile ricevere i parametri inviati al programma attraverso i metodi http GET e POST, e recuperare tutta una serie di informazioni che vengono restituite dal web server.

La variabile di ambiente REQUEST_METHOD indica se i dati sono inviati con il metodo GET o con il POST (infatti assume come valori GET oppure POST).

Per leggere il valore di questa variabile si utilizza la funzione: GetEnvironmentVariable('REQUEST_METHOD', Buffer, SizeOf(Buffer));, la cui esecuzione assegna alla variabile Buffer il valore assunto da REQUEST_METHOD (per Kylix, la versione di Delphi per Linux, la funzione da utilizzare è getenv('REQUEST_METHOD')).

Nel caso di dati inviati con il GET la variabile di ambiente QUERY_STRING contiene la stringa dati.

Nel caso di dati inviati via POST questi vengono recuperati leggendo il flusso di input utilizzando il comando Read.

Le variabili di ambiente contengono diverse informazioni utili ed il loro valore viene sempre recuperato utilizzando la funzione GetEnvironmentVariable: ad esempio la variabile HTTP_USER_AGENT contiene la stringa di identificazione del browser utilizzato dall'utente.

L'esempio che ho preparato contiene il sorgente per Delphi e Kylix di un semplice CGI, e delle pagine in html con cui è possibile sperimentare il passaggio dei parametri con i metodi GET e POST e vedere il valore delle varie variabili di ambiente

Scarica DelphiCGI.zip (circa 86K).

È anche possibile compilare questo sorgente utilizzando l'ambiente di sviluppo gratuito e multipiattaforma Free Pascal, pienamente compatibile con il Turbo Pascal 7, e parzialmente compatibile con Delphi.
Per compilare il sorgente con il compilatore pascal di Free Pascal utilizzare il comando: c:\pp\bin\win32\ppc386.exe -Sd DelphiCGI.dpr.

Lo sviluppo di applicazioni con Free Pascal può essere notevolmente facilitato tramite l'utilizzo di Dev-Pascal.
Il progetto Open Source Dev-Pascal consiste in un ambiente di sviluppo visuale integrato con alcune versioni freeware di Pascal, tra cui appunto Free Pascal (esiste anche un setup di Dev-Pascal che comprende l'ultima versione di Free Pascal).

Esistono molti altri compilatori per il linguaggio Pascal disponibili per vari sistemi operativi: una panoramica molto dettagliata sui vari compilatori Pascal e Delphi compatibili esistenti è presente nel sito francese Pascaland.


Home    Il software di andrearusso.it    Spazio radioascolto

Informazioni e commenti: