Heim  >  Artikel  >  Backend-Entwicklung  >  PHP implementiert die Login-Datenbank

PHP implementiert die Login-Datenbank

WBOY
WBOYOriginal
2023-05-07 09:28:06934Durchsuche

php implementiert die Anmeldedatenbank

In modernen Webanwendungen ist die Benutzerauthentifizierung äußerst wichtig. Eine übliche Authentifizierungsmethode besteht darin, dass der Benutzer einen Benutzernamen und ein Passwort eingibt. Nach Erhalt der Anfrage überprüft der Server, ob die vom Benutzer eingegebenen Informationen korrekt sind. Erst nach erfolgreicher Überprüfung kann erfolgreich auf die relevanten Informationen zugegriffen werden. Während dieses Prozesses müssen beide Parteien zusammenarbeiten, um eine normale Benutzerauthentifizierung zu erreichen. Unter diesen ist die Verwendung einer Datenbank zum Speichern von Benutzerinformationen auf der Serverseite derzeit eine der am häufigsten verwendeten Implementierungsmethoden.

Wie kann man also PHP verwenden, um die Datenbankbenutzeranmeldung zu implementieren? In diesem Artikel wird dieser Vorgang für Sie erläutert.

Zunächst müssen wir klarstellen, dass der Benutzerauthentifizierungsprozess normalerweise die folgenden Schritte umfasst:

  1. Benutzer besuchen die Anmeldeseite und geben ihren Benutzernamen ein und Passwort# 🎜🎜#
  2. Der Server empfängt den vom Benutzer eingegebenen Benutzernamen und das Passwort und prüft, ob der Benutzer in der Datenbank vorhanden ist
  3. Wenn der Benutzer vorhanden ist, überprüfen Sie, ob das Passwort vorhanden ist richtig
  4. #🎜🎜 #Wenn das Passwort korrekt ist, werden Erfolgsinformationen an den Benutzer zurückgegeben, andernfalls werden Fehlerinformationen zurückgegeben.
  5. Im Folgenden stellen wir Ihnen Schritt für Schritt vor, wie Sie den Anmeldevorgang bei der Datenbank umsetzen.

Schritt 1: Erstellen Sie eine Datenbank

Bevor wir mit der Implementierung der Anmeldefunktion beginnen, müssen wir zunächst eine Datenbank erstellen. In diesem Artikel verwenden wir die MySQL-Datenbank als Beispiel. Wir müssen zuerst MySQL installieren, uns dann bei MySQL anmelden und eine Datenbank mit dem Namen „test“ erstellen.

Datenbanktest erstellen;

Nachdem die Erstellung abgeschlossen ist, müssen wir eine Benutzertabelle erstellen. In dieser Benutzertabelle müssen wir den Benutzernamen und das Passwort des Benutzers speichern.

CREATE TABLE-Benutzer (

id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,

Benutzername VARCHAR(30) NOT NULL,
Passwort VARCHAR(30) NOT NULL# 🎜🎜#);

Schritt 2: Mit der Datenbank verbinden

Bevor wir eine Verbindung mit der Datenbank herstellen, müssen wir zunächst die relevanten Verbindungsinformationen konfigurieren. Zu diesen Informationen gehören Benutzername, Passwort, Hostname, Port usw. der Datenbank. Wir können diese Konfigurationsinformationen in einer separaten Datei speichern und diese Datei dann bei Bedarf einbinden.

Konfigurationsdatei, z. B. config.php:

$servername = "localhost";

$username = "root" ;

$password = "123456";
$dbname = "test";
?>

Als nächstes müssen wir eine Verbindung zur Datenbank herstellen und die Datenbank auswählen wir müssen verwenden. Dieser Prozess erfordert normalerweise die Verwendung des MySQLi-Objekts in PHP.
include('config.php');

// Verbindung erstellen

$conn = new mysqli($servername, $username, $ Passwort, $dbname);
//Verbindung erkennen
if ($conn->connect_error) {

die("连接失败: " . $conn->connect_error);

}
?># 🎜🎜#Schritt3: Benutzeranmeldung implementieren


Als nächstes müssen wir die Benutzeranmeldungsfunktion implementieren. In diesem Beispiel müssen wir den Benutzernamen und das Passwort aus dem vom Benutzer eingegebenen Formular abrufen. Übergeben Sie dann den Benutzernamen an die Datenbank und fragen Sie ab, ob der Benutzer existiert. Wenn der Benutzer vorhanden ist, überprüfen Sie, ob das Passwort korrekt ist. Wenn das Passwort korrekt ist, werden Erfolgsinformationen an den Benutzer zurückgegeben, andernfalls werden Fehlerinformationen zurückgegeben.

Zuerst müssen wir ein einfaches HTML-Formular erstellen, um den vom Benutzer eingegebenen Benutzernamen und das Passwort zu erhalten.

<label>用户名:</label>
<input type="text" name="username"/><br/><br/>
<label>密码:</label>
<input type="password" name="password"/><br/><br/>

<input type="submit" value="登陆"/>

Das Formular oben Senden Sie den vom Benutzer eingegebenen Benutzernamen und das Passwort an die Seite login.php.

Als nächstes müssen wir PHP-Code verwenden, um den vom Benutzer eingegebenen Benutzernamen und das Passwort aus dem Formular abzurufen und den Benutzernamen an die Datenbank zu übergeben. Wenn der Benutzer gefunden wird, überprüfen Sie, ob das Passwort korrekt ist. Wenn das Passwort korrekt ist, werden die Benutzerinformationen in der Sitzung gespeichert und Erfolgsinformationen zurückgegeben, andernfalls werden Fehlerinformationen zurückgegeben.

include('config.php');

// Überprüfen Sie, ob das Formular gesendet wurde

if($_SERVER["REQUEST_METHOD"] = = "POST") {

// 主动设置编码,防止中文出现乱码
header('Content-type:text/html;charset=utf-8');
$input_username = mysqli_real_escape_string($conn,$_POST['username']);
$input_password = mysqli_real_escape_string($conn,$_POST['password']);
// SQL语句
$sql = "SELECT * FROM users WHERE username = '$input_username'";
$result = mysqli_query($conn,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
$count = mysqli_num_rows($result);
// 如果查询到了该用户,检查密码是否正确
if($count == 1) {
    if(password_verify($input_password, $row['password'])) {
        // 密码正确,将用户信息存入session中
        session_start();
        $_SESSION["username"] = $row['username'];
        $_SESSION["login_time"] = time();
        echo '登陆成功';
    } else {
        // 密码错误,返回错误信息
        echo '密码错误';
    }
} else {
    // 没有查询到该用户,返回错误信息
    echo '用户名不存在';
}

}
?>

Im obigen Code wird die Funktion mysqli_real_escape_string zum Escapen von Zeichenfolgen verwendet, um Schwachstellen durch SQL-Injection zu vermeiden . Gleichzeitig verwenden wir die Funktion „password_verify“, um zu überprüfen, ob das vom Benutzer eingegebene Passwort korrekt ist. Diese Funktion vergleicht, ob das eingegebene Passwort und das verschlüsselte Passwort identisch sind.


Schritt 4: Sicherheitsüberlegungen

Nach Abschluss der oben genannten Schritte können wir die Benutzeranmeldung implementieren. In praktischen Anwendungen müssen wir jedoch auch einige Sicherheitsaspekte berücksichtigen, z. B. wie die Sicherheit von Benutzerkennwörtern in der Datenbank gewährleistet werden kann, wie SQL-Injection verhindert werden kann usw.

Um die Sicherheit des Benutzerpassworts in der Datenbank zu gewährleisten, müssen wir es verschlüsseln. PHP bietet viele Verschlüsselungsmethoden wie MD5, SHA1, Bcrypt usw. In diesem Artikel verwenden wir die mit PHP gelieferten Funktionen „password_hash“ und „password_verify“, die es uns ermöglichen, Passwörter bequemer zu ver- und entschlüsseln und gleichzeitig deren Sicherheit zu gewährleisten.

Gleichzeitig müssen wir auch darüber nachdenken, wie wir SQL-Injection-Schwachstellen verhindern können. Im obigen Code verwenden wir die Funktion mysqli_real_escape_string, um SQL-Injection-Schwachstellen zu vermeiden. Gleichzeitig können wir PHP PDO auch zur Implementierung von Datenbankoperationen verwenden. PDO bietet eine sicherere und zuverlässigere Möglichkeit, SQL-Injection-Angriffe wirksam zu verhindern.

In diesem Artikel stellen wir vor, wie Sie PHP verwenden, um die Datenbankbenutzeranmeldung zu implementieren. Dazu gehört das Herstellen einer Verbindung zur Datenbank, das Einholen von Benutzereingaben und das Abfragen der Datenbank. Durch die Einführung dieses Artikels glaube ich, dass jeder klarer verstehen kann, wie die Benutzeranmeldefunktion in PHP implementiert wird, und gleichzeitig die damit verbundenen Sicherheitsprobleme erkennen kann.

Das obige ist der detaillierte Inhalt vonPHP implementiert die Login-Datenbank. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn