#!/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 |
| Individu |
Date naissance |
Lieu naissance |
Date décès |
Lieu décès |
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 "
| $indi | \n";}
else{
print "
| $indi | \n";}
if (!$daten){
$daten=" ";
print "$daten | \n";}
else{
print "$daten | \n";}
if (!$lieun2){
$lieun2=" ";
print "$lieun2 | \n";}
else{
print "$lieun2 | \n";}
if (!$dated){
$dated=" ";
print "$dated | \n";}
else{
print "$dated | \n";}
if (!$lieud2){
$lieud2=" ";
print "$lieud2 |
\n";}
else{
print "$lieud2 | \n";}
}
print "
\n";
print " Gendex.pl Version 1.03a Genlink.org\n";
}
}
}
######################################################################
######################################################################
######################################################################
######################################################################
######################################################################
# END OF SCRIPT