# was passiert, wenn $user folgendermaszen aussieht: # a' OR id > 1 OR username = 'b # dann koennte der benutzer an mehr daten kommen als er eigentlich # sehen darf. deshalb: $user = $dbh->quote($user); my $anfrage = qq~SELECT passwort, userid FROM htm_user WHERE username = $user~; my $sth = &FireSql($dbh, $anfrage); if (my $ergebnis = $sth->fetchrow_hashref()) {   ($pass2, $userid} = @{ $ergebnis }{'password', 'userid'}; } else {   # fehlermeldung } $sth->finish(); # aufraeumen # ------------------------------------------ sub FireSql {   my ($dbh, $statement) = @_;   my $sth = $dbh->prepare($statement);   unless ($sth) {     print "Fehler im prepare: '$statement': ", $dbh->err_str, "\n";     exit 0;   }   unless ($sth->execute()) {     print "Fehler im prepare: '$statement': ", $dbh->err_str, "\n";     exit 0;   }   return ($sth); } # FireSql