#!/usr/local/bin/perl print "Content-type: text/html\n\n"; # Definition de constantes $base = '/usr/local/etc/w3perl/htdocs/quizz'; $page1 = "$base/test1.html"; $page2 = "$base/test2.html"; $page3 = "$base/test3.html"; $page4 = "$base/test4.html"; $fich_reponse = $base."/data/reponses.txt"; $fich_question = $base."/data/questions.txt"; $debug = 0; $good = 0; $nb_repondu = 0; # Get the input read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); # Split the name-value pairs @pairs = split(/&/, $buffer); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Un-Webify plus signs and %-encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; # Uncomment for debugging purposes # print "Setting $name to $value
" if ($debug == 1); $FORM{$name} = $value; $nb_repondu++ if (substr($name,0,1) eq "q"); } $count = $FORM{'nb_questions'}; # comparaison pour savoir si l'utilisateur a repondu a toutes les questions. if ($nb_repondu != $count) { print "

Vous avez laissé certaines questions sans réponses...

\n"; print "

Cliquez ici pour compléter le formulaire précédent.

"; exit; } # ouverture du fichier des reponses. open (REPONSE,"$fich_reponse"); @reponse = (); close (REPONSE); # ouverture du fichier des questions. open (QUESTION,"$fich_question"); @question = (); close (QUESTION); # Construction du tableau bonne/mauvaise reponse. $string = "
\n"; $string .= "\n\n"; $string .= "\n"; for ($i=0;$i<=$#reponse;$i++) { ($a,$b) = split(/ = /,$reponse[$i]); (@valeurs) = split(/\t/,$question[$i]); $num = $a; $num =~ s/q//; $val_reponse = $valeurs[$FORM{$a}-1]; $val_solution = $valeurs[$b-1]; $good++ if ($b == $FORM{$a}); # bonne reponse if ($debug == 1) { print "
Ligne : $i

"; print "Reponse : $reponse[$i] / \$a = $a - \$b = $b
\n"; print "Question : "; for ($j=0;$j<=$#valeurs;$j++) { print "$valeurs[$j] - "; } print "
Votre reponse : $val_reponse ($FORM{$a})
Solution : $val_solution
"; print "Bonne reponse : $good
"; } if ($FORM{$a} ne '') { $string .= "

Taux de réussite : $taux %\n"; $stringemail .= "Taux de reussite : $taux %"; $mailprog = '/usr/lib/sendmail -t'; $recipient = 'domisse@w3perl.com'; open (MAIL, "|$mailprog $recipient") || die "Can't open $mailprog!\n"; print MAIL "Subject: Quizz \n\n"; print MAIL "Resultat du quizz :\n\n"; print MAIL "------------------------------------------------------------\n"; print MAIL "$stringemail"; print MAIL "\n------------------------------------------------------------\n"; print MAIL "Server protocol: $ENV{'SERVER_PROTOCOL'}\n"; print MAIL "Remote host: $ENV{'REMOTE_HOST'}\n"; print MAIL "Remote IP address: $ENV{'REMOTE_ADDR'}\n"; close (MAIL); print "\n"; print "
\n

\n"; print "$string"; print "

Nous vous remercions d'avoir joué avec nous.

\n"; print "

\n

\n\n\n";
QuestionVotre réponseBonne réponse