Caractéristiques système : XP SP2 PentiumIII 866MHz et 128 Mo de ram
Serveur Apache HTTP Server 2.0.58
Active Perl 5.8.7 Build 815
Mon objectif est de protéger l’accès à certaines données personnelles continues dans un fichiers se trouvant sur le serveur local.
Chaque utilisateur se connecte avec son nom d’utilisateur et son mot de passe pour accéder à ses données personnelles.
Les noms d’utilisateurs ainsi que les mot de passe sont tous stockés dans un fichier que j’ai appelé access.txt
Voici mon code pour le formulaire à partir duquel tous les utilisateurs doivent saisir leur noms et mot de passe :je l’ai appelé access.html
Et voice mon code pour le script perl qui, à partir des données contenues dans le fichier access.txt,valide le nom d’utilisateur et le mot de passé saisi dans le formulaire :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <html><head><title></title></head> <body><table border="2" width="600" align="center"><tr><td><center><h2>Remplissez le Formulaire SVP!</h2></center> <form name="layform4" action="http://localhost/cgi-bin/exercice4.pl" method="post"> <table align="center" cellpadding="10"><tr> <td valign=middle" align="right"><b>Code d'utilisateur:</b></td><td valign=middle" align="left"><input type="text" name="utilisateur" value="Sober5"></td></tr> <tr><td valign="middle" align="right"><b>Mot de passe:</b></td><td valign=middle" align="left"><input type="password" name="pwd" value="**********"></center></td></tr> <tr><td colspan="2"><center> <input type="submit" value="Entrer"> </center> </td></tr></table></form></td></tr></table></body></html>
Mon blocage est que quand je valide le formulaire, si le nom d’utilisateur et le mot de passe sont correctes, les données personnelles s’affichent pour cet utilisateur mais l’ex écution se poursuit pour les autres membres et le programme affiche le code d’usager n’est pas dans la base de donnée.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 #!c:/perl/bin/perl.exe use CGI 'param'; use CGI::Carp qw(fatalsToBrowser warningsToBrowser); print "Content-type:text/html\n\n"; print "<html><body text=\"black\"><center><b>"; $code_utilisateur=param('utilisateur'); $password=param('pwd'); open (DATA,'../cgi-bin/access.txt') or die("Impossible de lire ce fichier, DESOLE"); while (<DATA>) { $_ =~ s/[\r\n]//g; $ligne = $_; ($code,$pwd,$prenom,$nom,$age,$sexe,$courriel,$ville,$pays ) = split(':',$ligne); @user_parameters=split(':',$ligne); if (($user_parameters[0] eq $code_utilisateur)&&($user_parameters[1] eq $password)){ print"<table border=\"4\" rules=\"none\" width=\"600\" align=\"center\"><tr><td colspan=\"2\" align=\"center\" border=\"0\">"; print "<h3><b>Informations concernant le code d'utilisateur :$code_utilisateur </b></h3></td></tr>"; print "<tr><td border=\"0\" align=\"right\"><h3><b>Nom :</b></h3></td><td align=\"left\"><h3>$nom</h3></td></tr>"; print "<td border=\"0\" align=\"right\"><h3><b>Prénom : </b></h3></td><td border=\"0\" align=\"left\"><h3>$prenom</h3></td></tr>"; print "<td border=\"0\" align=\"right\"><h3><b>âge : </b></h3></td><td border=\"0\" align=\"left\"><h3>$age</h3></td></tr>"; print "<td border=\"0\" align=\"right\"><h3><b>Sexe : </b></td> <td border=\"0\" align=\"left\"><h3>$sexe </h3></td></tr>"; print "<td border=\"0\" align=\"right\"><h3><b>Courriel : </b></h3></td> <td border=\"0\" align=\"left\"><h3>$courriel</h3></td></tr>"; print "<td border=\"0\" align=\"right\"><h3><b>Ville : </b></h3></td> <td border=\"0\" align=\"left\"><h3>$ville</h3></td></tr>"; print "<td border=\"0\" align=\"right\"><h3><b>Pays : </b></h3></td> <td border=\"0\" align=\"left\"><h3>$pays </h3></td></tr></table> else{ print "<br>le code d'usager $code_utilisateur n\'est pas dans la base de donnees<br>"; } close (DATA)/body></html>";
Quelqu’un peut il m’aider!!!
Merci d’avance
Partager