|
|
 |

|

 |

| Community » Perl: Allgemeines Forum |
|
Passwortabfrage
|
Seitenanfang |
Ich habe eine einfache Passwortabfrage geschrieben, die generell auch funktioniert. Zumindest, wenn man die Fragen beantwortet, die man eingegeben hat. Gebe ich aber ein falsches Passwort und einen falschen Usernamen ein, bekomme ich zusätzliche Fehlermeldungen, die ich nicht finden kann. Kann mir jemand weiterhelfen? #!/usr/bin/perl -w%passwords = ( "Paul" => "Hund", "Otto" => "Katze", "Peter" => "Maus", "Hans" => "Vogel", "Karl" => "Pferd"); print "\nBitte geben Sie Ihren Usernamen ein:\n"; $username = <STDIN>; chomp $username; print "\nBitte geben Sie Ihr Passwort ein:\n"; $passwort = <STDIN>; chomp $passwort; if($passwort eq $passwords{$username}) { print "Herzlich Willkommen, $username!\n"; } else { print "Das Passwort $passwords{$username} ist nicht korrekt!\n"; while($passwort ne $passwords{$username}) { print "Bitte versuchen Sie es noch einmal:\n"; $passwort = <STDIN>; chomp $passwort; } }
Datum: 11.10.2005-07:27

|
re: Passwortabfrage
|
Seitenanfang |
| WELCHE Fehlermeldungen bekommst du?
Datum: 11.10.2005-08:34

|
re: Passwortabfrage
|
Seitenanfang |
Ich bekomme folgende Fehlermeldungen: Use of uninitialized value in string eq at loesung4.pl line 18, <STDIN> line 2.Use of uninitialized value in concatenation (.) or string at loesung4.pl line 24 , <STDIN> line 2. Das Passwort ist nicht korrekt! Use of uninitialized value in string ne at loesung4.pl line 25, <STDIN> line 2.
Datum: 11.10.2005-21:35

|
re: Passwortabfrage
|
Seitenanfang |
| Diese Warnung (nein, es ist keine Fehlermeldung, nur eine Warnung) kann eigentlich nur kommen, wenn Du einen nicht existierenden Benutzernamen oder kein Passwort eingegeben hast. Daher auch mein vorheriger Hinweis mit exists.
Datum: 11.10.2005-22:33

|
re: Passwortabfrage
|
Seitenanfang |
Hi Cremator, Vielen Dank! Ich werds jetzt mal versuchen....!
Datum: 12.10.2005-07:10

|
re: Passwortabfrage
|
Seitenanfang |
| Aehm... Du solltest noch mit exists($passwords{$username}) pruefen ob dein Benutzer ueberhaupt existiert. Hashes haben die bloede Angewohnheit Schluessel automatisch zu erzeugen, wenn diese nicht existieren. Hier passiert dies in der Zeile if($passwort eq $passwords{$username}). Beim zweiten Versuch hat man dann einen existierenden Benutzernamen mit einem leeren Passwort...
Datum: 11.10.2005-12:08

|
re: Passwortabfrage
|
Seitenanfang |
Ich habs: #!/usr/bin/perl -wmy %passwords = ( "Paul" => "Hund", "Otto" => "Katze", "Peter" => "Maus", "Hans" => "Vogel", "Karl" => "Pferd"); print "\nBitte geben Sie Ihren Usernamen ein:\n"; my $username = <STDIN>; chomp ($username); print "\nBitte geben Sie Ihr Passwort ein:\n"; my $passwort = <STDIN>; chomp ($passwort); if (exists $passwords{$username}){ if($passwort eq $passwords{$username}){ print "Herzlich Willkommen, $username!\n"; } #if else { print "Das Passwort $passwords{$username} ist nicht korrekt!\n"; } #else } #if else { print "Kenne niemanden mit dem Usernamen $username.\n"; } #else
Datum: 12.10.2005-09:42

|
|

|

|

|
 |

|

|
|