à part que si tu met <STDIN> à la place de <> sur les lignes
1 2
| $login = <>;
$mdp = <>; |
et aussi
open(INFILE,'<',"membres.txt");
je ne vois pas quel peut-être le problème,
si tu nous aiguillais un peu
genre tu as une erreur ? si oui laquelle etc.
au fait il faut que ton fichier membres.txt soit dans le même dossier que le programme !
de plus avec l'algorithme que tu as écrit si c'est toto qui essaye de se loguer (le 4ieme dans la liste) il aura une sortie de ce type la :
dommage
dommage
dommage
ça marche
et je pense que ce que tu voulais ça sois plus tôt juste un "ça marche"
pour ça il aurais fallut que ton code soit :
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
| #!/usr/bin/perl -w
print ("\n========== Bien venue ==========\n");
#Vérifie l'existence d'un utilisateur
print "entrez votre login\n";
$login = <STDIN>;
print "entrez votre mot_de_passe\n";
$mdp = <STDIN>;
open(my $infile,'<','membres.txt');
while(<$infile>)
{
if (/^$login/) # si la ligne commence par le login
{
if (/$mdp$/) # on vérifie le mot de passe seulement dans ce cas la
{print "ça marche\n";}
}
else
{print "dommage\n";}
}
close (FILE,"membres.txt");
print ("=========== Fin du test ===========\n"); |
ou bien pour conserver ta méthode
(mais comme on le dit souvent en PERL il y as plusieurs façon d'arriver au bout :p )
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
| #!/usr/bin/perl -w
print ("\n========== Bien venue ==========\n");
#Vérifie l'existence d'un utilisateur
print "entrez votre login\n";
$login = <STDIN>;
print "entrez votre mot_de_passe\n";
$mdp = <STDIN>;
open(INFILE,'<','membres.txt');
while(<INFILE>)
{
@user = split(/:/); # si on ne précise pas sur quoi on split c'est fait sur $_
if ($login eq user[0]) # si la ligne commence par le login
{
if ($mdp eq user[1]) # on vérifie le mot de passe seulement dans ce cas la
{print "ça marche\n";}
}
else
{print "dommage\n";}
}
close (FILE,"membres.txt");
print ("=========== Fin du test ===========\n"); |
je suis loin d'être bien placer pour les leçons d'orthographe mais on écrit login (pas logine)
voila je pense avoir tout dit ...
ha non tu n'as pas poster au bonne endroit (mais ton message seras vite déplacer par les modérateur
)
Partager