Hi,
ich weiss das sich einen Hash benutze :o)
Ich meinte nur, dass mir aufgefallen ist, dass wenn ich dieses ($u ne undef) && ($p ne undef) weg lasse, dann der User trotzdem reinkommt, wenn $p "leer" ist.
Mit sauberer meinte ich eigentlich nicht unbedingt die schreibweise im Hash, sondern eher ob dies wie ich es gemacht habe üblich ist oder man es anderst (besser) hätte machen können.
Aber dennoch danke für den Hinweis :o)
Ok, wenn ich es mir nochmal überlege, ist da natürlich ein anderer Fehler drin:
##############
my %passwd = ("xxx","xxx");
my $u = $cgi->param('username');
my $p = $cgi->param('password');
if (($passwd{$u} eq $p) && ($u ne undef) && ($p ne undef))
##############
Nehmen wir an, Du denkst USER="ABC" - PASSWD="XYZ"...
Ich gebe aber USER="123" und PASSWD="UVW" ein.
Dann bildet Deine Abfrage natürlich was Leeres, denn
$passwd{"123"} ist "", was dann auch gleich $p also meinem eingegebenem (leeren) Paßwort entspricht.
Somit ist die Bedingung erfüllt und ich darf weitermachen!!!
Reiner