✅ WEB- und WordPress-Nachrichten, Themen, Plugins. Hier teilen wir Tipps und beste Website-Lösungen.

So erstellen Sie ein PHP-Anmeldesystem für Ihre Website

93

Sie möchten ein Login-System in PHP integrieren? In diesem Artikel zeige ich Ihnen, wie Sie einen einfachen Login-Flow in PHP durchführen. Wir werden ein Anmeldeformular erstellen, die Anmeldeinformationen validieren und den Benutzer auf die Kontoseite umleiten. Ich würde auch einen Code hinzufügen, um den Benutzer abzumelden. Außerdem zeigen wir die Fehlermeldungen an, wenn die falschen Zugangsdaten eingegeben werden.

Für das Tutorial gehe ich davon aus, dass Sie den ‘md5’-Hash zum Speichern des Passworts verwenden. Ich würde den Code unter Berücksichtigung des md5-Hashs eines Strings schreiben. Möglicherweise verwenden Sie einen anderen Algorithmus. In diesem Fall müssen Sie die Abfrage gemäß Ihrem Algorithmus ändern.

Um den Login-Flow zu integrieren, benötigen wir eine Datenbanktabelle, die die Benutzerdaten speichert. Anhand dieser Tabelle überprüfen wir, ob der Benutzer die richtigen Anmeldeinformationen eingegeben hat oder nicht. Wenn die Benutzeranmeldeinformationen korrekt sind, sollten nur sie Zugriff auf die gesicherten Seiten haben.

In meinem Fall habe ich eine ‘Benutzer’-Tabelle erstellt und einige Dummy-Einträge hinzugefügt. Ich habe auch eine Spalte "Status" hinzugefügt, die verwendet wird, um herauszufinden, ob ein Konto aktiv ist oder nicht. Diese Spalte hat den ENUM-Datentyp mit den Werten 0 und 1.

  • 1: Konto ist aktiv
  • 0: Konto ist nicht aktiv

So erstellen Sie ein PHP-Anmeldesystem für Ihre Website

Erstellen Sie ein Anmeldeformular

Lassen Sie uns zunächst ein Anmeldeformular erstellen, in das Benutzer ihre Anmeldeinformationen eingeben können. Ich verwende ein Bootstrap-Framework, um ein Anmeldeformular zu erstellen. Meine index.phpDatei enthält den folgenden Code.

<!DOCTYPE html>
<html>
    <head>
        <title>Login Form</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" />
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-6">
                    <h3>Login Form</h3>
                    <?php if(!empty($error_message)) { ?>
                        <div class="alert alert-danger"><?php echo $error_message; ?></div>
                    <?php } ?>
                    <form method="post">
                        <div class="form-group">
                            <label for="exampleInputEmail1">Email address</label>
                            <input type="email" class="form-control" id="exampleInputEmail1" name="email" placeholder="Email" required />
                        </div>
                        <div class="form-group">
                            <label for="exampleInputPassword1">Password</label>
                            <input type="password" class="form-control" id="exampleInputPassword1" name="password" placeholder="Password" required />
                        </div>
                        <button type="submit" name="submit" class="btn btn-primary">Submit</button>
                    </form>
                </div>
            </div>
        </div>
    </body>
</html>

Der obige Code zeigt das Anmeldeformular an, wie im folgenden Screenshot gezeigt.

So erstellen Sie ein PHP-Anmeldesystem für Ihre Website

Ich habe die Variable $error_messageim Code hinzugefügt, die die Anmeldefehler ausgibt.

PHP-Code zur Validierung der Benutzeranmeldeinformationen

Sie sind mit dem Anmeldeformular und der Datenbanktabelle fertig. Als nächstes müssen wir beim Absenden eines Formulars PHP-Code schreiben, der die Anmeldeinformationen des Benutzers mit den Datenbankeinträgen abgleicht. Wenn die Angaben korrekt sind, melden Sie den Benutzer am System an und leiten Sie zur myaccount.phpSeite weiter.

Erstellen Sie eine config.phpDatei und fügen Sie einen Code für die Datenbankverbindung hinzu.

<?php
$conn = new mysqli('DB_HOST', 'DB_USER', 'DB_PASSWORD', 'DB_NAME');
 
if ($conn->connect_errno) {
    echo "Error: ". $conn->connect_error;
}
?>

Ersetzen Sie die Platzhalter durch die tatsächlichen Werte.

Fügen Sie nun in der index.phpDatei vor dem Start des HTML-Tags den folgenden Code hinzu.

<?php
session_start();
  
require_once('config.php');
  
//if user is logged in redirect to myaccount page
if (isset($_SESSION['id'])) {
    header('Location: myaccount.php');
}
  
$error_message = '';
if (isset($_POST['submit'])) {
 
    extract($_POST);
 
    if (!empty($email) && !empty($password)) {
        $sql = "SELECT id, status FROM users WHERE email = '".$conn->real_escape_string($email)."' AND password = '".md5($conn->real_escape_string($password))."'";
        $result = $conn->query($sql);
  
        if ($result->num_rows > 0) {
            $row = $result->fetch_assoc();
            if($row['status']) {
                $_SESSION['id'] = $row['id'];
                header('Location: myaccount.php');
            } else {
                $error_message = 'Your account is not active yet.';
            }
        } else {
            $error_message = 'Incorrect email or password.';
        }
    } else {
        $error_message = 'Please enter email and password.';
    }
}
?>

Hier im Code habe ich beim Überprüfen des Passworts die PHP-Methode md5 verwendet, vorausgesetzt, Sie haben das Passwort mit diesem Algorithmus gespeichert.

Abmeldecode

Der nächste Teil ist das Hinzufügen von Code zum Abmelden des Benutzers. Erstellen Sie dazu myaccount.phpDatei. Eine weitere Sache, die nur für angemeldete Benutzer zu handhaben ist, sollte auf diese Seite zugreifen.

meinkonto.php

<?php
session_start();
 
if (isset($_GET['action']) && ('logout' == $_GET['action'])) {
    unset($_SESSION['id']);
}
 
if (isset($_SESSION['id'])) {
    ?>
    <h3>Welcome User! <a href="?action=logout">Logout</a></h3>
    <?php
} else { //redirect to login page
    header('Location: index.php');
}
?>

Mit der PHP-Sitzung finden wir heraus, ob wir Zugriff auf diese Seite gewähren oder nicht. Wenn die Sitzung nicht festgelegt ist, leiten Sie den Benutzer auf die Anmeldeseite um.

Ich hoffe, Sie verstehen die Grundlagen des Aufbaus eines Login-Systems in PHP. Bitte teilen Sie Ihre Gedanken und Vorschläge im Kommentarbereich unten mit.

Zum Thema passende Artikel

Aufnahmequelle: artisansweb.net

Diese Website verwendet Cookies, um Ihre Erfahrung zu verbessern. Wir gehen davon aus, dass Sie damit einverstanden sind, Sie können sich jedoch abmelden, wenn Sie möchten. Annehmen Weiterlesen