#!/usr/local/bin/perl ############################################################################ # # COPIER CETTE PAGE SUR VOTRE DISQUE ET LA NOMMER gendex.pl (en minuscules) # ############################################################################ # Version 3.0 du script # Recherche sur colonne nom # Interprétation des espaces # Minimum trois caractères demandés # version 1.02 du 01.10.99 # Recherche dans un fichier gendex # Affichage limité à 15 caractères des lieux ################################################################### # CETTE VERSION 1.02 EST LIBRE D'USAGE # MERCI DE NOUS ENVOYER LES MODIFICATIONS # QUE VOUS REALISEZ SUR CE SCRIPT ET LES NOTER A LA SUITE DU # PARAGRAPHE PRECEDENT ################################################################### # INSTRUCTIONS POUR L'INSTALLATION DU SCRIPT # # 1) copier gendex.pl dans le repertoire CGI # 2) copier votre fichier gendex.txt dans le répertoire CGI # 3) Vous devez editer les trois lignes qui suivent # # # Ligne 1: Votre URL de base (ou sont publiés les fichiers) $baseurl="http://www.genlink.org/charlemagne"; # # Ligne 2: Url du script (l'adresse http:// où se trouve le script $scripturl="http://www.genlink.org/cgi-bin/gendex_charlemagne.pl"; # # Ligne 3: si vous souhaitez donner un autre nom pour votre fichier gendex $database="gendex.txt"; # # # 4) créer un formulaire de recherche sur votre page index pour accéder au script # ou recopier éventuellemnt le code suivant (sans les #) # #
# # # # c'est tout # IMPORTANT: N'OUBLIEZ PAS QUE CES FICHIERS DOIVENT ETRE COPIER # EN MODE ASCII ET NON PAS EN MODE BINARY SUR LE SERVER SINON ERROR 500 # webmaster@genlink.org #################################################################### # Routines à exécuter &Acces; &Recherche_bd($keys); &Affichage; # Acces aux données sub Acces { # lecture et décryptage des données du formulaire read(STDIN, $save_string, $ENV{CONTENT_LENGTH}); # Yes- Use it @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/; $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 # en cherchant dans la troisième colonne, celle des noms open(MYFILE,"gendex2.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 LE TEXTE ENTRE LES BALISES <

Voulez-vous connaître la descendance ou l'ascendance de ...

Les grandes dynasties d'Europe


Entrer un Nom

print "
Vous recherchez un livre sur la généalogie\n";

HEADFORM ################### FIN DES POSSIBILITES DE 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 > 100 ) { print "

Votre requête comporte plus de 100 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/\// /; # LA LIGNE QUI SUIT BRIDE L'AFFICHAGE DU LIEU A 15 CARACTERES # POUR PLUS DE LISIBILITE DANS LES TABLEAUX $lieun2=substr($lieun,0,20); $lieud2=substr($lieud,0,20); print <<"RESULT2"; RESULT2 } print "
Nom Prénom
Date naissance
Lieu naissance
Date décès
Lieu décès
$indi $daten $lieun2 $dated $lieud2
\n"; # MERCI DE GARDER LA LIGNE CI-DESSOUS OU ME DEMANDER SI VOUS SOUHAITEZ LA CHANGER print "
Librairie de la voûte lavoute.org\n"; } } } # SI VOUS SOUHAITEZ RAJOUTER DU HTML APRES LE RESULTAT, VOUS POUVEZ # LE FAIRE ENTRE CES DEUX BALISES <<"FIN"; ET FIN print <<"FIN"; FIN # END OF SCRIPT