next up previous contents index
Next: Remplacement de mots clefs Up: Scripts CGI Previous: HTTP ``dynamique''   Contents   Index


CGI, base

Le premier CGI que nous écrirons sera en ... Shell. Ceci afin de nous assurer que le serveur fonctionne correctement.

Le lecteur devra au préalable installer le serveur Apache sur sa machine et s'assurer qu'il fonctionne correctement. Pour cela, il ouvrira dans un navigateur l'adresse http://127.0.0.1 ; ceci ne doit pas afficher d'erreur et indiquer que le serveur est correctement installé.

Nous allons proposer une installation simpliste afin de simplifier les explications et avoir une plate-forme commune. Chaque utilisateur pourra, en fonction de ses connaissances, adapter ce texte à ses besoins. Pour les utilisateurs plus avancés, il est possible de procéder avec un hôte virtuel, parfaitement géré par Apache.

Si le serveur est correctement installé, il est capable d'exécuter des scripts CGI. Ceux-ci sont rassemblés dans le répertoire /home/httpd/cgi-bin.

Nous allons créer un scripts de test en Shell placé dans le fichier /home/httpd/cgi-bin/test.cgi :

#! /bin/sh

cat << EOF
Content-type: text/html

<HTML>
<BODY>
<br>Ce test fonctionne parfaitement.
<br>Nous sommes le $(date)
</BODY>
</HTML>
EOF

Ce programme indique que l'interprète /bin/sh doit être utilisé pour l'exécuter. Il lance la commande Unix cat qui affiche sur la sortie du programme toutes les lignes suivantes jusqu'à ce que le mot clef EOF soit rencontré. Le texte affiché est alors celui contenu entre les deux EOF. L'en-tête de ce texte est très important et il indique au navigateur qu'il s'agit de texte brut ou de texte codé en HTML. Puis on rencontre la balise d'ouverture d'une page WEB suivit de son corps. La commande Unix date est exécutée et son résultat est inséré tel quel dans le texte de sortie.

Pour le tester, nous entrons l'adresse http://localhost/cgi-bin/test.cgi ; ça devrait afficher le message et la date du jour.

L'étape suivante consiste à créer le script en OpenScheme. Pour cela, vous devez avoir une version de l'environnement sur votre système. Les commandes qui suivent doivent être exécutées en tant que l'utilisateur root.

Vérifiez bien que le binaire est exécutable pour tout le monde. Pour cela, vérifiez que la commande ls -la /usr/local/bin/osm-cgi affiche -rwxr-xr-x ou -rwxrwxr-x. Si ce n'est pas le cas, tapez la commande chmod /usr/local/bin/osm-cgi 755.

Ecrivons maintenant le premier programme CGI en Scheme dans le fichier /home/httpd/cgi-bin/osm1.cgi :

#! /usr/local/bin/osm-cgi --exec

(use 'osm)

(format #t
"Content-type: text/html

<HTML>
<BODY>
<br>Ce test osm fonctionne bien.
<br>Aujourd'hui = ~a
</BODY>
</HTML>
" (date->string (date)))

La première ligne de ce programme indique quels sont les arguments à donner à l'interprète Scheme pour exécuter le script. Ce fichier doit être rendu exécutable. Pour cela, taper la commande chmod 755 /home/httpd/cgi-bin/osm1.cgi.

Assurez-vous qu'il fonctionne correctement, indépendamment du serveur Apache en tapant la commande /home/httpd/cgi-bin/osm1.cgi. Cela doit afficher du texte en HTML !

Maintenant, nous pouvons tester avec le serveur. En utilisant le navigateur lynx, par exemple, tapez lynx http://localhost/cgi-bin/osm1.osm. On doit avoir le texte suivant affiché :

Ce test osm fonctionne bien.

Aujourd'hui = Sat Oct 7 16:00:12 2000

Nous sommes maintenant prêts à exploiter les fonctions CGI d'OpenScheme !

Ces fonctionnalités sont regroupées dans le module NET. Elles permettent de remplacer une série de mots clefs d'une page WEB par une valeur. Dans ce mode de fonctionnement, on utilise une page WEB existante, dans laquelle on place les mots clefs.

Il est aussi possible de placer du code Scheme directement dans une page WEB, comme on le fait avec ASP, PHP ou Perl. De cette manière, le texte HTML et les programmes se situent dans le même fichier. La bibliothèque permet aussi de récupérer la valeur des champs des formulaires dans des variables Scheme, sans intervention, ainsi que les principales variables d'environnement.


next up previous contents index
Next: Remplacement de mots clefs Up: Scripts CGI Previous: HTTP ``dynamique''   Contents   Index
© 1993 to 2001 Erian Concept