PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Vergleich mit mysql



TruckerB
16.02.2005, 14:50
Eigentlich will ich ja keinen neuen Threat öffnen(schon wieder) aber ich will das jetzt wissen.
Ich arbeite gerade mit mysql Datenbanken und will ein Login machen. Das heißt der Name aus der Tabelle und das Passwort müssen mit den eingegebenen Daten verglichen werden. wenn die richtig sind ist mann mit einem Gooki entweder sekundär oder Dauerhaft angemeldet(wie ich das mache weis ich). Wie bringe ich den Browser aber zum Vergleich der Werte von PW und Name??? Meine Tabelle heist members.

Vanlender
16.02.2005, 15:06
<?
if($pw == $pw_db)
{
// Login
}
else
{
echo "Falsches Passwort!";
}
?>


Das ist jetzt ne sehr einfache Version, aber das Grundprinzip.

$pw ist das Passwort aus dem Formular, und $pw_db das aus der Datenbank, aber natürlich im Query ein WHERE = '$username' reinmachen, sonst vergleicht man es mit allen PW's der DB.

www.php.de

Rolus
16.02.2005, 16:56
Ich denke mal das Problem liegt bei den Querys. Also ich würde es folgendermaßen machen ($name ist der vorher angegebene Name):


SELECT
COUNT(*) as Zahl
FROM
member
WHERE
Name = '$name'
Das dient zu Überprüfung, ob der Nick überhaupt existiert.


if($link['Zahl'] != 1)
{
echo("Benutzer existiert nicht.");
}
Weiter geht's mit der Passwort-Überprüfung (Passwort liegt in $password):


SELECT
Passwort
FROM
member
WHERE
Name = '$name'
So, damit hast du dann dein Passwort geholt. Den Rest für die Passwort-Überprüfung hat Vanlender ja schon gepostet.

freundliche Grüße, Rolus

Latency
17.02.2005, 15:25
Die Überprüfung ob es den User bereits gibt lässt sich folgender maßen besser Implementieren:

$login_query = mysql_query("SELECT `alle_benoetigten_Felder` FROM tabelle WHERE `name` = '".$username."'");
if(mysql_num_rows($login_query) == 0)
{
die("User nicht gefunden");
}
// Hier unten geht dann der Code weiter mit dem Login, also Überprüfung von Username && Passwort.
Beide Methoden Funktionieren, allerdings kannst du so eine Query-Sparen, was unter umständen Performance spart :)

edit:
Achja noch ne Anmerkung von meiner Seite aus. Nie Passwort und UserName direkt in der Query vergleichen, es ist zwar möglich, aber zu anfällig für MagicQuote Attacken.

TruckerB
17.02.2005, 15:34
Ich danke euch. Aber ich fürchte, ich muss noch viel lernen...