Mailinglisten-Archive |
Hallo Mathias, > > Hier der ,glaub ich relevante, Code: > > my $dbhandle; > > Hier definierst du $dbhandle als lokale Variable, Oh, das ist was schief gegangen. my $dbhandle passiert schon außerhalb der Sub, sollte also global sein. dann kommt: sub Admincheck { my $aktiv = shift; return unless $aktiv; chomp (my $adminlogin = param('admin')); chomp (my $adminpasswd = param('master')); if ($adminlogin ne "" && $adminpasswd ne "") { # Verbindung zur Datenbank herstellen $dbhandler = dblogin($adminlogin, $adminpasswd) or die ; print start_form, table({-align=>'center'}, Tr( td({-align=>'center'}, topage("Neuen User anlegen")) ) ), end_form; } else { print h2({-align=>'center', -style =>'Color: red'}, "Ihre Eingabe war fehlerhaft!<br>"), p({-align=>'center', -style =>'Color: red'}, "Überprüfen Sie Login und Passwort und versuchen Sie es bitte nocheinmal!"); FormAdmin; } } Klickt man auf 'Neuen User anlegen' wird eine Fromularseite erstellt, die einfach nur das neue Login und zweimal das neue Passwort erfragt. Klickt man dann auf 'Eintragen' wird folgende Sub aufgerufen: sub Adduser { my $aktiv = shift; return unless $aktiv; chomp (my $newlg = param('newlogin')); my $newlogin = ucfirst($newlg); chomp (my $newpasswd1 = param('newpasswd1')); chomp (my $newpasswd2 = param('newpasswd2')); if ($newpasswd1 ne "" && $newpasswd2 ne "" && $newlogin ne "" && $newpasswd1 eq $newpasswd2) { my $datetime = Zeit; my $encrypt = crypt($newpasswd1, substr($newlogin, 0, 3)); my $sql = "INSERT INTO zugang SET "; # und genau bis hier hin kommt er, kein Stück weiter # das Quoting haut nicht hin $sql .= "login=" . $dbhandler->quote($newlogin) . ","; $sql .= "encrypt=" . $dbhandler->quote($encrypt) . ","; $sql .= "insertat=" . $dbhandler->quote($datetime) . ";"; $dbhandler->do($sql) or die; } else { print h2({-align=>'center', -style =>'Color: red'}, "Ihre Eingabe war fehlerhaft!<br>"), p({-align=>'center', -style =>'Color: red'}, "Überprüfen Sie Login und Passwort und versuchen Sie es bitte nocheinmal!"); FormNewuser; } } Und warum geht mir der db-handle hier verloren? Ehrlich gesagt, haben mir Deine Erklärungen über die Subs da nicht wirklich geholfen. Ich dachte, das die globale Variable erhalten bleibt. Gruss Marcel --- *** Weitere Infos zur Mailingliste und MySQL unter http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive