Hey PHP-Pros!
Ich habe bei meinem Projekt schon zweimal Daten auslesen müssen aus meiner MySQL Datenbank. Einmal bei der Registrierung, da prüfe ich ob Name und E-Mail schon vergeben sind. Das zweite Mal beim Login, wenn ich den Namen in der Tabelle suche, finde und dann die Passwörter vergleiche. Ich habe mehrere Vorgehensweisen gefunden, eine in einem Buch und eine im Internet. Bei meinem Buch habe ich den Verdacht, dass es nicht so ganz auf dem aktuellen Stand ist, so meine Erfahrung.
Ich bin noch nicht sehr erfahren mit PHP und möchte es deshalb nicht falsch lernen, bzw. gleich den besten Weg lernen um Daten mit Daten aus einer Db Tabelle zu vergleichen, denn ich werde es bei meinem Projekt noch sehr häufig machen müssen.
Vielen lieben Dank.
Ich habe bei meinem Projekt schon zweimal Daten auslesen müssen aus meiner MySQL Datenbank. Einmal bei der Registrierung, da prüfe ich ob Name und E-Mail schon vergeben sind. Das zweite Mal beim Login, wenn ich den Namen in der Tabelle suche, finde und dann die Passwörter vergleiche. Ich habe mehrere Vorgehensweisen gefunden, eine in einem Buch und eine im Internet. Bei meinem Buch habe ich den Verdacht, dass es nicht so ganz auf dem aktuellen Stand ist, so meine Erfahrung.
PHP-Code:
// Datenbankverbindung aufbauen
include("db.inc.php");
// Auslesung der registrierten Nutzer in der Datenbank
$sql = "SELECT name, email FROM users";
$db_erg = mysqli_query($db, $sql);
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysqli_error());
}
$isNameAvail = true;
$isEmailAvail = true;
$name = $_POST["name"];
$email = $_POST["email"];
$password = $_POST["password"];
// Jeder Datensatz wird darauf geprüft, ob er den selben NAMEN oder die selbe EMAIL hat, wie der der sich gerade versucht anzumelden
while ($dsatz = mysqli_fetch_array($db_erg, MYSQL_ASSOC))
{
// Ist der Name schon vergeben?
if ($name == $dsatz['name'])
{
$isNameAvail = false;
echo "<span style=\"color:#FF0000;\"><b>Dieser Name ist bereits vergeben.</b></span><br />";
}
// Ist die E-Mail Adresse bereits registriert?
if ($email == $dsatz['email'])
{
$isEmailAvail = false;
echo "<span style=\"color:#FF0000;\"><b>Diese E-Mail ist bereits registriert.</b></span><br />";
}
}
PHP-Code:
// Datenbankverbindung aufbauen
include("db.inc.php");
// Name und Passwort des Logins in Variablen speichern
$name = $_POST["name"];
$pw = $_POST["pw"];
// Suche in der Datenbank nach diesem User
$sql = "SELECT name, password, id FROM users WHERE name LIKE '$name'";
$db_erg = mysqli_query($db, $sql);
if ( ! $db_erg )
{
die('Ungültige Abfrage: ' . mysqli_error());
}
$row = mysqli_fetch_object($db_erg);
// Wenn der Name in der Datenbank gefunden wurde
if ($row == true)
{
// Ist das Passwort korrekt?
if ($row->password == $pw)
{
$id = $row->id;
$_SESSION["id"] = $id;
header ( 'Location: game.php' );
}
else
{
echo "Passwort falsch.";
}
}
else
{
$name = "";
echo "Account nicht gefunden.";
}
Vielen lieben Dank.
Kommentar