#!/usr/local/bin/perl # Recuperation des parametres &Acces_aux_donnees_transmises; # Traitement : recherche dans la base de donnees &Recherche_Annuaire($keys); # Affichage du resultat au format HTML &Affichage_du_Resultat; sub Acces_aux_donnees_transmises { # acces au STDIN read(STDIN, $save_string, $ENV{CONTENT_LENGTH}); # Yes- Use it # dissocie la chaine de caracteres en une liste @prompts = split(/&/,$save_string); # parcour de la liste foreach (@prompts) { # dissocie la paire nom=valeur ($name,$value) = split(/=/,$_); # decode les valeurs $name =~ s/\%(..)/pack("c",hex($1))/ge; $value =~ s/\%(..)/pack("c",hex($1))/ge; # uniformisation des cles de recherche # en transformant tous les caracteres en minuscules $value =~ tr/A-Z/a-z/; # cree une liste associative $fields{$name}=$value; } # cree une variable contenant les mots cles recherches $keys = $fields{'keys'}; } sub Recherche_Annuaire { # dissocie les mots cles le code du symbole + est 2b @search_key = split(/\x2b/,$keys); $k =0; # accede au fichier contenant l'annuaire open(MYFILE,"pubfluo.dat"); while() { # accede a chaque element de l'annuaire $in_line = $_; # uniformisation des cles de recherche # en transformant tous les caracteres en minuscules $in_line =~ tr/A-Z/a-z/; $found = "yes"; foreach (@search_key) { # cherche la cle dans l'element de l'annuaire $pos_out = rindex($in_line,$_); if ($pos_out < 0) { $found = "no"; } } if ($found eq "yes") { $found[$k] = $_; $k = $k + 1; } } close(MYFILE); } sub Affichage_du_Resultat{ # entete HTTP print("Content-Type: text/html\n\n"); # Génération du document HTML print("Results\n"); print("\n"); # Génération du formulaire print <<"HEADFORM";

Fluoride Lab's Publications 1959-1998

Keys

HEADFORM if ($keys eq "") { print <<"INFO";

You can test one keyword in the categories : Publication title, Author name, Journal.... INFO } else { print "


"; if($k==0) { print "No response to this quest $keys"; } else { print <<"RESULT"; Result(s) for this quest : $k RESULT for($i=0; $i <= $#found; $i++) { ($numero, $titre, $auteur, $journal)=split(/:/,$found[$i]); print <<"RESULT2"; RESULT2 } print "
No Title Author(s) Journal
$numero $titre $auteur $journal
\n"; } } }