Problem mit PW-Abfrage Script
Kai
- php
Ich hänge beim nachfolgenden Script fest, irgendwie läuft die Bedingung immer zum letzten Else, ich weiß aber nicht wo der Fehler liegt, vielleicht kann mir da ja jemand helfen.
<?
include ("db_connect.inc");
include ("library.inc");
$query = "select email, pass from member where (email = '$frm_loginname')";
$erg = mysql_query($query, $dbh);
if($frm_loginname == $erg["email"])
{
if($frm_pass == $erg["pass"])
{
echo "Eingabe korrekt";
}
else
{
echo "Passwort ist falsch";
}
}
else
{
echo "Username ist falsch";
}
?>
Ist nur meine If-Bedingung falsch? Mit mysql_fetch_array($erg) kann ich mir die Daten nämlich anzeigen lassen.
Viele Grüße
Kai
Hallo!
<?
$query = "select email, pass from member where (email = '$frm_loginname')";
$erg = mysql_query($query, $dbh);if($frm_loginname == $erg["email"])
das prüfst Du doch schon in der SQL-Query!
{
if($frm_pass == $erg["pass"])
{
echo "Eingabe korrekt";
}
else
{
echo "Passwort ist falsch";
}
}
else
{
echo "Username ist falsch";
}?>
Ist nur meine If-Bedingung falsch? Mit mysql_fetch_array($erg) kann ich mir die Daten nämlich anzeigen lassen.
;-)
mysql_fetch_array($erg) brauchst Du natürlich _immer_ , denn $erg ist eine Recource und kein Array wie mysql_fetch_array().
Mach sowas wie
$query = "select email, pass from member where (email = '$frm_loginname')";
$erg = mysql_query($query, $dbh);
$row = mysql_fetch_array($erg);
if($frm_pass == $row["pass"]) {
echo "Eingabe korrekt";
}
else {
echo "Eingabe faslch";
}
Grüße
Andreas
Hallo,
wenn ich das hier richtig interpretiere, geht es um die Überprüfung von Login-Daten. Stimmt das?
Gut, dann würde ich die where-Klausel gleich so auslegen, dass Username UND Passwort gecheckt werden. Wenn das gültige Query (sollte man auch überprüfen) dann genau eine Zeile liefert (mysql_num_rows($res)==1), dann wurde ein User-Passwort-paar gefunden.
<?php
function UserCheck(.....)
{
$query = "select ID from member where (email='$frm_loginname') and pass='$frm_pass')";
if ($query)
{
if (mysql_num_rows($query)
{
return true;
}
else return false;
}
else die("Fehler: $mysql_error($dbconn)");
}
?>
Alternativ kann man sich natürlich auch gleich die ID und ggf. die statische Sessionnummer zurückgeben lassen, um eine Session wieder aufzubauen.
Liebe Grüße aus http://www.braunschweig.de
Tom