#!/usr/local/bin/perl # # (ou/or /usr/bin/Perl) #################################################################### # version 1.3a du 01.10.2011 # 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.shtml #################################################################### # 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 (UNIX server) # # 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 (sans "/" à la fin - without "/" at the end) $background = "http://www.mysite.com/myimage.gif"; # $Dir_Html = URL du répertoire de publication / URL to Directory publication (sans "/" à la fin - without "/" at the end) $Directory ="http://mysite.com/publication"; #################################################################### # VOUS POUVEZ CHANGER LE FORMULAIRE DE RECHERCHE PLUS BAS SI VOUS SOUHAITEZ (SECTION 2) # YOU CAN CHANGE THE RESEARCH FORMULAR BELOW (SECTION 2) #################################################################### #################################################################### #################################################################### #################################################################### #################################################################### #################################################################### &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 ###################################################################### ###################################################################### ###################################################################### ###################################################################### ###################################################################### ###################################################################### # SECTION 2 : VOUS POUVER CI-DESSOUS 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/\// /; ###################################################################### ###################################################################### ###################################################################### # GARDE 25 PREMIERS CARACTERES POUR LE LIEU DE NAISSANCE ET DE DECES $lieun2=substr($lieun,0,25); $lieud2=substr($lieud,0,25); ###################################################################### ###################################################################### ###################################################################### ###################################################################### 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.03a Genlink.org\n"; } } } ###################################################################### ###################################################################### ###################################################################### ###################################################################### ###################################################################### # END OF SCRIPT