phpbar.de logo

Mailinglisten-Archive

[pear] Select-Befehl, query, getOne ?

[pear] Select-Befehl, query, getOne ?

Frank Rasche phpml at raschesweb.de
Don Feb 27 17:25:05 CET 2003


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