Hallo
Ich habe micht entschlossen, mal etwas mit PHP und MySQL rumzuprobieren. Ich habe mich mal etwas eingelesen und mich dann an die Arbeit gemacht. Das Verbinden, Auswählen und Selecten geht alles, nur hat er anscheinend Probleme beim Vergleich des MySQL Passwortes und jenes aus dem Loginfenster. Hier eine kleine Übersicht:
index.html = Loginfenster mit Eingabeboxen und Submit Feld
login.php = MySQL Code und Ausgabe
Bitte seid nicht hart zu mir, ich werde das Ganze später (wenn es komplett ist) per Templatesystem Smarty auslagern, da noch CSS Code hinzukommen wird
Nun zum eigentlichen Problem:
Mein Datensatz hat den 'namen' Test2 und das 'password' 123. Nun verbinde ich, wähle aus und benutze ein assozitives Array, um die Arraywerte mit Namen ansprechen zu können. Wenn ich dort das 'password' per var_dump ausgebe, funktioniert alles und 123 wird ausgegeben.
Nun möchte ich logischerweise das Eingabepasswort mit dem Arraypasswort aus der MySQL Tabelle vergleichen, jedoch kommt hierbei immer die else Schleife. Ersetze ich 'password' durch den Stringwert 123, funktioniert es und die if Meldung kommt (Erfolg). Ich sleber sehe leider keinen Fehler oder ich kenne ihn (noch) nicht. Ich wäre um euren Rat sehr dankbar.
index.html
login.php
var_dump Meldungen mit dem Eingabepasswort 1235:
string(5) "Test2" string(3) "123" string(4) "1235" Test nicht ok
MfG dUDALUS
Edit
Anscheinend ist der Wert $row ausserhalb der while Schleife nicht gültig. Wie erstelle ich zB ein globales Array ?
Ich habe micht entschlossen, mal etwas mit PHP und MySQL rumzuprobieren. Ich habe mich mal etwas eingelesen und mich dann an die Arbeit gemacht. Das Verbinden, Auswählen und Selecten geht alles, nur hat er anscheinend Probleme beim Vergleich des MySQL Passwortes und jenes aus dem Loginfenster. Hier eine kleine Übersicht:
index.html = Loginfenster mit Eingabeboxen und Submit Feld
login.php = MySQL Code und Ausgabe
Bitte seid nicht hart zu mir, ich werde das Ganze später (wenn es komplett ist) per Templatesystem Smarty auslagern, da noch CSS Code hinzukommen wird
Nun zum eigentlichen Problem:
Mein Datensatz hat den 'namen' Test2 und das 'password' 123. Nun verbinde ich, wähle aus und benutze ein assozitives Array, um die Arraywerte mit Namen ansprechen zu können. Wenn ich dort das 'password' per var_dump ausgebe, funktioniert alles und 123 wird ausgegeben.
Nun möchte ich logischerweise das Eingabepasswort mit dem Arraypasswort aus der MySQL Tabelle vergleichen, jedoch kommt hierbei immer die else Schleife. Ersetze ich 'password' durch den Stringwert 123, funktioniert es und die if Meldung kommt (Erfolg). Ich sleber sehe leider keinen Fehler oder ich kenne ihn (noch) nicht. Ich wäre um euren Rat sehr dankbar.
index.html
HTML:
<html><head>
<title>Loginsystem</title>
</head><body>
<form action="login.php" method="post">
Name: <input type="text" name="username" size="20"><br>
Passwort: <input type="password" name="password" size="20"><br>
<input type="submit" value="Einlogen">
</form>
</body></html>
login.php
PHP:
<?php
// Verbindung zum nicht passwortgeschützten MySQL Server
$link = mysql_connect("localhost", "root", "")
or die ("Konnte nicht verbinden, Grund ".mysql_error());
// Datenbank test2 wird angewählt
$db_selected = mysql_select_db("test2")
or die ("Konnte Datenbank nicht auswählen, Grund ".mysql_error());
// Die Zeile, wo der name = Username (Wert vom Loginfenster) ist, wird angewählt
$result = mysql_query("SELECT * FROM gefahrgut WHERE name = '".$_POST['username']."'");
// Die Zeile wird gefetcht und ein mit dem Arraynamen ansprechbares Array "row" gespeichert
while($row = mysql_fetch_array($result, MYSQL_ASSOC))
{
var_dump($row['name']); // Testausgabe des MySQL Eintrages "name"
var_dump($row['password']); // Testausgabe des MySQL Eintrages "password"
}
var_dump($_POST['password']); // Testausgabe des Login Eintrages "password"
if($row['password'] == $_POST['password']) { // Ist MySQL Passwort = Login Passwort
echo("Test ok"); // Erfolg
} else {
echo("Test nicht ok"); // Misserfolg
}
?>
var_dump Meldungen mit dem Eingabepasswort 1235:
string(5) "Test2" string(3) "123" string(4) "1235" Test nicht ok
MfG dUDALUS
Edit
Anscheinend ist der Wert $row ausserhalb der while Schleife nicht gültig. Wie erstelle ich zB ein globales Array ?
Zuletzt bearbeitet: