Mailinglisten-Archive |
Hallo Wolfgang, Wolfgang Glemnitz schrieb am Donnerstag, 27. Februar 2003 um 15:17: > Mit register.php kann ich den Nutzer anlegen, ist er > angelegt klappt auch der Login. > Ist er nicht angelegt kommt falsches Paßwort: > die Select-Anweisung ist nicht falsch, demzufolge > kommt kein Fehler, also geht es nicht zur > register.php. > Mit getOne als Ersatz von query habe ich es probiert, > da kommt aber der Fehler: Call to a member function on > a non-object in ... Hört sich so an, als ob dein $db_object keine korrektes Handle zurückgibt. Überprüfst du bei deinem DB::connect(...) auf Fehler? if(isError($db_object)) die($db_object->getMessage()); > [...] > $check = $db_object->query("SELECT uname, pwd FROM > authuser.nutzer WHERE (uname = > '".$_POST['username']."' AND pwd = > '".$_POST['password']."')"); > if(DB::isError($check)) { > die('Der Nutzer: '.$_POST['username'].' mit dem > Paßwort: '.$_POST['password'].' existiert nicht in > unserer Datenbank '.$db_object.' .<a href="register.php">> Zur Registrierung'); > } Stopp! Siehe andere Mail von mir: DB::isError liefert keinen Fehler bei einem leeren Ergebnis! Wenn du überprüfen willst, ob a) der User existiert b) Password und User übereinstimmen dann darfst du beides nicht in einer SQL-Anweisung mit AND verknüpfen, da du so den Fall a nicht rauskriegst. (siehe Mail von Tobias) $sql = "SELECT pwd FROM authuser.nutzer WHERE uname = '".$_POST['username']."'"; $check = $db_object->query($sql); if(DB::isError($check)) die ($check->getMessage()); if ($check->numrows()==0) { ... user existiert nicht... } $row = $check->fetchRow(DB_FETCHMODE_ASSOC); if($row['pwd']!=$_POST['password']) { ... Password ist falsch... } HTH Frank -- Website : http://www.raschesweb.de e-mail : info at raschesweb.de GPG public-key: http://www.raschesweb.de/rasche.asc =================================================== ;-)
php::bar PHP Wiki - Listenarchive