So kürzlich lernte ich, wie man einen Benutzernamen und ein Kennwort zu einer Datenbank richtig hinzufügt. Meine Datenbank ist usersys, und die Tabelle, die Benutzerinformationen speichert, wird userdb genannt. Die Tabelle hat zwei Spalten - Benutzername (primär), Passwort.Wie authentifiziere ich einen Benutzer in PHP/MySQL?
Das Anmeldeformular funktioniert gut, gibt die Benutzereingaben in die Datenbank korrekt ein und prüft auch, ob der Benutzername des Benutzers bereits in der Datenbank ist oder nicht.
Mit diesem gesagt, ich frage, ob jemand mir helfen könnte, ein Login-Skript zu erstellen. So weit, das ist was ich habe:
$username = $_POST['username'];
$password = $_POST['password'];
$displayname = $_POST['username'];
$displayname = strtolower($displayname);
$displayname = ucfirst($displayname);
echo "Your username: " . $displayname . "<br />";
mysql_connect("localhost", "root", "******") or die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("usersys") or die(mysql_error());
echo "Connected to Database <br />";
$lcusername = strtolower($username);
$esclcusername = mysql_real_escape_string($lcusername);
$escpassword = mysql_real_escape_string($password);
$result = mysql_query("SELECT * FROM userdb WHERE username='$esclcusername' AND password='$escpassword'") or die(mysql_error());
$row = mysql_fetch_array($result);
$validateUser = $row['username'];
$validatePass = $row['password'];
Die POST-Daten stammen von der vorherigen Anmeldeseite. Ich möchte, dass dieses Skript die Tabelle (userdb) überprüft und die Zeile für den Benutzernamen findet, die der Benutzer aus dem vorherigen Formular eingegeben hat, und überprüfen, ob das eingegebene Passwort mit dem in dieser Zeile in der userdb-Tabelle festgelegten Passwort übereinstimmt.
Ich möchte auch eine Art von Möglichkeit zu prüfen, ob oder ob nicht, wenn der Benutzername eingegeben wird, um dem Benutzer mitzuteilen, dass der eingegebene Benutzername nicht existiert, wenn es nicht in der Tabelle gefunden werden kann.
folgt sollten Sie einen vorhandenen Authentifizierungs-Framework, wann immer möglich wieder verwenden, weil wirklich, es komplex ist. Sehen Sie sich zum Beispiel https://github.com/delight-im/PHP-Auth an, das sowohl framework-agnostisch als auch datenbankunabhängig ist. – caw