#!/usr/local/bin/perl # # (ou/or usr/bin/Perl) #################################################################### # version 1.2 du 9.11.2000 # This Script and the readme may only be given away "as is", unmodified # and complete. # Created and Copyright by Philippe Mathis # You can support Genlink.org at this adress: # http://www.genlink.org/ # for help please visit http://www.genlink.org/fr/gendex.htm #################################################################### # INSTRUCTIONS # 1) Copier le script dans le même répertoire que votre fichier gendex.txt # Copy this script in the same directory of your gendex.txt file # 2) CHMOD 755 gendex.pl # 3) C'est tout (It's all) # Merci de garder le lien en bas de page # Don't remove link with genlink please #################################################################### # CONFIGURATION # $background = URL image de fond / URL background Image $background = "http://www.genlink.org/charlemagne/Parchmnt.gif"; #################################################################### # Après cette ligne ne rien changer # After this line don't change anything #################################################################### #################################################################### #################################################################### #################################################################### &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,"gendex.txt"); while() { # accede a chaque element $in_line = $_; # @field = split (/|/,$line); # $in_line = ($field[2]); # 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 chemin pour l'accès au repertoire ############VOUS POUVER CHANGER ENTRE <

Résultat de la recherche:

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 caracteres.\n"; } elsif ( $k > 250 ) { print "

Votre requête comporte plus de 250 réponses, veuillez préciser en tapant un prénom + $keys\n"; # résultat si la réponse n'existe pas } else { print "
"; if($k==0) { print "Pas de réponse pour cette demande: ce nom ($keys) ne figure pas dans ma base de données."; # donne le résultat } else { ###################################################################### ###################################################################### ###################################################################### ###################################################################### print <<"RESULT"; Resultat(s) de votre demande : $k RESULT for($i=0; $i <= $#found; $i++) { ($page, $nom, $indi, $daten, $lieun, $dated, $lieud )=split(/\|/,$found[$i]); $indi =~ tr/\// /; $lieun2=substr($lieun,0,15); $lieud2=substr($lieud,0,15); ###################################################################### ###################################################################### ###################################################################### ###################################################################### if (!$indi){ $indi=" "; print "\n";} else{ print "\n";} if (!$daten){ $daten=" "; print "\n";} else{ print "\n";} if (!$lieun2){ $lieun2=" "; print "\n";} else{ print "\n";} if (!$dated){ $dated=" "; print "\n";} else{ print "\n";} if (!$lieud2){ $lieud2=" "; print "\n";} else{ print "\n";} } print "
Individu
Date naissance
Lieu naissance
Date décès
Lieu décès
$indi
$indi$daten$daten$lieun2$lieun2$dated$dated$lieud2
$lieud2
\n"; print "
Gendex.pl Version 1.02 Genlink.org\n"; } } } ###################################################################### ###################################################################### ###################################################################### ###################################################################### ###################################################################### # END OF SCRIPT