#!/usr/bin/perl ################################################################## # Version 3.0 du script chronologie # Recherche sur colonne date # Interprétation des espaces # Minimum deux caractères demandés ################################################################### # 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) { ($number,$value) = split(/=/,$_); $number =~ s/\%(..)/pack("c",hex($1))/ge; $value =~ s/\%(..)/pack("c",hex($1))/ge; $value =~ tr/0-1-2-3-4-5-6-7-8-9/0-1-2-3-4-5-6-7-8-9/; # cree une liste associative $fields{$number}=$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,"jouet.csv"); while() { # accede a chaque element $line = $_; @field = split (/\;/, $line); $in_line = ($field[1]); # 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("catalogue jouets\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 <

Tarif

Que s'est-il passé en ?


Entrer un code

Vous recherchez un livre ici

HEADFORM ################### FIN DES CHANGEMENTS #################################################### # sortie du résultat sous forme de tableau if ( $keys !~ /^[0-1-2-3-4-5-6-7-8-9]/ ) { print " \n"; } elsif ( length($keys) < 2 ) { print "

La requête doit avoir au moins deux caractères.\n"; # résultat si la réponse n'existe pas } else { print "


"; if($k==0) { print " L'année $keys ne figure pas dans notre base."; # donne le résultat } else { print <<"RESULT"; Vous avez $k événement(s) pour l'année $keys RESULT for($i=0; $i <= $#found; $i++) { ($annee, $date, $evenement, $pays )=split(/;/,$found[$i]); print <<"RESULT2"; RESULT2 } print "
Référence Page Désignations Prix
$source
$reference $Page $designations $Prix
\n"; print "
© Copyright 2000-06,Librairie de la Voûte Tous droits réservés Lavoute.org \n"; } } } FIN DU SCRIPT