#!/usr/local/bin/perl ################################################################## # Version 1.0 du script fourni par yvon laligant # http://yvon.univ-lemans.fr/ # version 1.01a du 2.05.99 de philippe@mathis.net # Recherche sur colonne nom # Interprétation des espaces # Minimum trois caractères demandés ################################################################## # MERCI DE NOUS ENVOYER LES MODIFICATIONS # QUE VOUS REALISEZ SUR CE SCRIPT ################################################################### # Recuperation depuis le formulaire méthode POST &Acces; # Recherche dans la base de données &Recherche_bd($keys); # Affichage du resultat &Affichage; # Routine de décodage du formulaire envoyé sub Acces { # 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); foreach (@prompts) { ($name,$value) = split(/=/,$_); $name =~ s/\%(..)/pack("c",hex($1))/ge; $value =~ s/\%(..)/pack("c",hex($1))/ge; $value =~ tr/A-Z/a-z/; # cree une liste associative $fields{$name}=$value; } # création de la variable pour les recherches $keys = $fields{'keys'}; } ####################################################################### sub Recherche_bd { # dissocie les mots cles le code du symbole + est 2b @search_key = split(/\x2b/,$keys); $k =0; ####################################################################### # accede au fichier contenant la database open(MYFILE,"database.dat"); while() { # accede a chaque element $line = $_; @field = split (/\:/, $line); $in_line = ($field[0]); # 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 { # entete HTTP print("Content-Type: text/html\n\n"); # Génération du document HTML print("Results\n"); print("\n"); print "\n"; # Génération du formulaire # Vous devez éditer le chemein pour l'accès au repertoire ############VOUS POUVER CHANGER ENTRE < Votre ancêtre avait-il le téléphone en 1902 ?

COLOR="#FFFFFF">Chercher dans l'annuaire téléphonique de 1902

Entrer le Nom de famille recherché
Vous pouvez chercher un nom

HEADFORM ################### FIN DES CHANGEMENTS #################################################### # sortie du résultat sous forme de tableau if ( $keys !~ /^[a-z]/ ) { print "Entrez un nom \n"; } elsif ( length($keys) < 3 ) { print "

La requête doit avoir au moins trois caractères.\n"; # résultat si la réponse n'existe pas } else { print "
"; if($k==0) { print "Pas de réponse pour cette demande: Votre ancêtre ($keys) n'avait pas le téléphone."; # donne le résultat } else { print <<"RESULT"; Resultat(s) de votre demande : $k RESULT for($i=0; $i <= $#found; $i++) { ($nom, $daten, $lieun, $dated, $lieud, $commune, $departement, )=split(/:/,$found[$i]); print <<"RESULT2"; RESULT2 } print "
Nom Prénom Numéro Profession Adresse Commune Département
$nom $daten $lieun $dated $lieud $commune $departement
\n"; print "
Version 1.01a Lavoute\n"; } } } FIN DU SCRIPT