Introduction - Les paramètres - Redirection - Les Images - protection par mot de passe - Les cookies - Base de données - FAQ

Introduction

Précisions :

  1. pour faire du CGI il faut un Serveur Web évidemment (sous Windows pour Delphi, sous Linux pour Kylix)...
  2. mon expérience en la matière sur un Serveur Lotus Domino sous NT, et avec Apache sur Mandrake 7.0 (linux).
  3. j'utilise Delphi 2.0, mais ce tutorial est compatible Delphi 3,4,5 et 6...et Kylix !
Remarque: Si vous désirez utiliser des DLL ISAP/NSAPI, utilisez Delphi 5/6; ce tutorial reste cependant utile si vous désirez comprendre comment fonctionnent les CGI.

Le principe :

dans une page HTML (ou directement l'URL dans le browser) tu mets un lien vers ton programme. Voici quelques exemples :
Appel par un lien :  <a href="/cgi-bin/program.exe">
Demander une image :  <img src="/cgi-bin/program.exe">
Formulaire en GET :  <form method=GET action="/cgi-bin/program.exe"> ... </form>
Formulaire en POST :  <form method=POST action="/cgi-bin/program.exe"> ... </form>
Appel direct :  http://www.tonserver.fr/cgi-bin/program.exe

cgi-bin :

c'est un alias déclaré sur le serveur qui pointe sur le répertoire qui contient les programmes CGI.
Par exemple :
Sous Windows :  c:\internet\delphi\cgi
Sous Linux :  /home/httpd/cgi-bin

Lancement du programme :

lorsque tu clique sur le lien (ou quand l'image se charge...) le serveur execute le programme (et pas le poste de travail) et attend la réponse.

La réponse du programme :

le plus simple est de faire une application "console" {$apptype console} qui ressemble à une application DOS mais Sous Windows 95/NT (sous Linux c'est implicite).
Ce n'est pas obligatoire mais ça permet de tester en locale à l'écran...
Voici le programme CGI le plus simple !
Program ExempleCGI; 

{$apptype console}

begin

 WriteLn('content-type: text/html');
 Writeln;
 WriteLn('Bonjour le monde !');
end.
Content-type :  c'est la description du contenu (ici du texte HTML)
Ligne vierge :  c'est OBLIGATOIRE, c'est pour dire "fin de l'entête/début du document" (le browser n'affiche pas l'entête).
Le reste :  c'est ce que tu affiches dans "Affichage/Source" (Internet Explorer)
L'appel se fait par :  http://votreserver/cgi-bin/ExempleCGI

Writeln :

Et oui, WriteLn suffit, en effet le texte envoyé sur la "sortie standard" est récupéré par le serveur, et le tout est renvoyé vers le brower.

D'ailleurs, sous Windows, on peut s'amuser a faire du CGI avec des .BAT !!!
@ECHO OFF
ECHO content-type: text/html
ECHO.
ECHO ^<HTML^>^<HEAD^>^<TITLE^>^</TITLE^>^</HEAD^>^<BODY^>

ECHO Bonjour le monde !
ECHO ^</BODY^>^</HTML^>
Notez l'utilisation du "^" pour devant les symbols réservés du DOS (< > & ...)

Bon c'est pas mal comme introduction je pense...

Au menu des prochaines mise à jours :

  • passage de paramètres (réalisé le 25/2/98)
  • redirection (réalisé le 16/03/98)
  • les images en CGI (réalisé le 16/03/98)
  • protection par mot de passe (réalisé le 25/05/98)
  • utilisation des coockies (réalisé le 05/01/99)
  • l'accès base de données (réalisé le 25/05/2000)