Moin!
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.
Eine gute Paßwortabfrage schaut zunächst, ob der eingegebene Username existiert, und dann, ob das zum Usernamen gehörende Paßwort mit der Eingabe übereinstimmt.
So ganz richtig machst du es derzeit also noch nicht, denn die Abfrage $passw{$u} fragt direkt das Paßwort des nicht unbedingt existierenden Users ab.
Die Abfrage, ob kein Username oder kein Paßwort übergeben wurde, macht es schon besser, aber eben noch nicht gut genug. Um Zugang zu erhalten, müssen $u und $p länger als "kein Zeichen" sein (sinnvoll ist, hier generell eine Mindestlänge zu nehmen, die größer als 4 ist, vor allem beim Paßwort mindestens 8 Zeichen), $u muß ein existierender User sein, und dann muß $p mit dem gespeicherten Paßwort übereinstimmen.
- Sven Rautenberg