Markus Trusk: unlogische Fehlermeldung im Errlog?

Beitrag lesen

Hallo,
Ich überprüfe zwischen Session und Datenbankeintrag, ob diese beiden übereinstimmen. Das Passwort in der Session is zur Sicherheit mit crypt verschlüsselt worden. Wenn ich jetzt die Datenbank nach diesem Namen und Passwort auslesen will.... (hier)

my $dbh = DBI->connect("DBI:mysql:$database:$dbserver", $dbuser, $dbpass, {AutoCommit => 0}) or die $DBI::errstr;
my $checkpwd = $dbh->prepare("SELECT nick, pass FROM users WHERE nick = ? AND pass = ?") or die $dbh->errstr;
   $checkpwd->execute($nick,$pass);
my ($readnick,$readpwd) = $checkpwd->fetchrow_array;
   $checkpwd->finish;
   $readpwd = crypt($readpwd, $crypt);

...passiert folgendes.
So funktioniert es zwar, aber im Errorlog steht folgendes:

[Sun Apr  4 13:46:13 2004] index.pl: Use of uninitialized value in crypt at /home/www/doc/1264/www.meinedomain.com/index.pl line 409.

dann habe ich die Variable auf existenz geprüft:

if ($readpwd)   {
$readpwd = crypt($readpwd, $crypt);
}

Aber mache ich es so, bricht das Script ab, weil die Überprüfung zw. Pwd aus der Session und aus der DB logischerweise nicht mehr übereinstimmt.

Weiters habe ich es noch so versucht:

.
.
my ($readnick,$readpwd) = ('','');
($readnick,$readpwd) = $checkpwd->fetchrow_array;
.
.
So funktioniert es zwar wieder, nur bekomme ich wieder die Fehlermeldung im Errorlog. Was soll ich nur tun?

Markus Trusk.