Erstellen Sie ein Anmeldesystem mit PHP, MySQL und HTML

Dies ist ein Tutorial zur Erstellung eines Anmelde-Systems mit Hilfe von PHP, MySQL und HTML. Ihre Website muss dynamisch sein und Ihre Besucher müssen sofortigen Zugriff darauf haben. Daher möchten sie sich so oft wie möglich anmelden. Das Anmelde-Authentifizierungssystem ist für jede Webanwendung sehr verbreitet. Es ermöglicht registrierten Benutzern den Zugriff auf die Website und Funktionen nur für Mitglieder. Es ist auch hilfreich, wenn wir Informationen für Benutzer speichern möchten. Es umfasst alles von Einkaufsseiten, Bildungsseiten und Mitgliedsseiten usw.

Enterprise-Systemverwaltung und Sicherheit | Melden Sie sich für einen kostenlosen Kurs an*

*Affiliate-Link. Siehe Nutzungsbedingungen.

Dieses Tutorial besteht aus 5 Teilen.

Inhaltsverzeichnis


  1. Anforderungen
  2. Registrierungssystem
  3. Anmeldesystem
  4. Willkommensseite
  5. Abmeldeskript

1) Anforderungen zum Erstellen eines PHP-Anmeldesystems

Um diesem Tutorial erfolgreich zu folgen und ein PHP-Login-System zu erstellen, müssen Sie über die folgenden Dinge verfügen und mit ihnen vertraut sein:

  • Ein Server, der PHP unterstützt, um Ihren Code auszuführen
  • Kenntnisse und Vertrautheit mit HTML und CSS
  • Eine MySQL-Datenbank, die auf Ihrem Gerät installiert ist, sowie das Wissen, wie man sie verwendet
  • Die Fähigkeit, alle notwendigen Sicherheitsmaßnahmen für Ihr Login-System hinzuzufügen

Wenn Sie all diese grundlegenden Anforderungen und Wissensbereiche haben, können Sie mit den nächsten Schritten fortfahren, um zu erfahren, wie Sie Ihr PHP-Login-System erstellen.

2) Erstellung eines Anmeldesystems

In diesem Teil werden wir ein Anmeldesystem erstellen, das es Benutzern ermöglicht, ein neues Konto im System zu erstellen. Unser erster Schritt ist die Erstellung eines HTML-Registrierungsformulars. Das Formular ist recht einfach zu erstellen. Es fragt lediglich nach einem Namen, einer E-Mail-Adresse, einem Passwort und der Bestätigung des Passworts. E-Mail-Adressen müssen für jeden Benutzer einzigartig sein. Mehrere Konten für dieselbe E-Mail-Adresse sind nicht erlaubt. Es wird eine Fehlermeldung an die Benutzer angezeigt, die versuchen, mehrere Konten mit derselben E-Mail-Adresse zu erstellen.

Schritt 1: Erstellung des Registrierungsformulars in HTML

Wir werden eine PHP-Datei mit dem Namen register.php erstellen und den folgenden Code einfügen. Dies ist ein einfaches HTML-Formular mit grundlegender Validierung. Wenn Sie nicht vertraut mit HTML sind, können Sie es von vielen Online-Seiten beziehen, die vorgefertigte html5 Anmeldeformularvorlagen anbieten.

HTML

 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Sign Up</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <h2>Register</h2>
                    <p>Please fill this form to create an account.</p>
                    <form action="" method="post">
                        <div class="form-group">
                            <label>Full Name</label>
                            <input type="text" name="name" class="form-control" required>
                        </div>    
                        <div class="form-group">
                            <label>Email Address</label>
                            <input type="email" name="email" class="form-control" required />
                        </div>    
                        <div class="form-group">
                            <label>Password</label>
                            <input type="password" name="password" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <label>Confirm Password</label>
                            <input type="password" name="confirm_password" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <input type="submit" name="submit" class="btn btn-primary" value="Submit">
                        </div>
                        <p>Already have an account? <a href="login.php">Login here</a>.</p>
                    </form>
                </div>
            </div>
        </div>    
    </body>
</html>

Die Ausgabe des obigen HTML-Formulars wird so aussehen.

Sign Up

Alle Eingabefelder sind erforderlich, indem das "required"-Attribut hinzugefügt wird, was das Standard-HTML-Attribut ist. Die Verwendung von type="email" validiert die vom Benutzer bereitgestellte E-Mail-Adresse und gibt einen Fehler aus, wenn die E-Mail-Adresse ungültig ist. Für das Registrierungsformular haben wir Bootstrap für die schnelle Entwicklung verwendet. Wenn Sie Zeit bei der HTML-Codierung sparen möchten, können Sie immer einige kostenlose HTML5-Vorlagen für Ihr Projekt verwenden.

Schritt 2: Erstellen der MySQL-Datenbanktabelle

Sie müssen eine neue Datenbank mit einem beliebigen geeigneten Namen erstellen. Führen Sie bitte anschließend die untenstehende SQL-Abfrage aus, um die Benutzertabelle in Ihrer neu erstellten MySQL-Datenbank zu erstellen.

MySQL

 

CREATE TABLE `users` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `name` varchar(75) NOT NULL,
  `password` varchar(255) NOT NULL,
  `email` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `email` (`email`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1;

Schritt 3: Erstellen der Datenbankkonfigurationsdatei

Jetzt haben wir die Benutzertabelle erstellt. Lassen Sie uns eine neue PHP-Datei mit dem Namen config.php erstellen, um eine Verbindung zur MySQL-Datenbank herzustellen. Fügen Sie den folgenden Code in die Datei config.php ein und ändern Sie den Datenbanknamen in den von Ihnen gewählten Namen, während Sie die Datenbank erstellen.

PHP

 

Schritt 4: Erstellen einer Sitzungsdatei

Lassen Sie uns eine Datei mit dem Namen session.php erstellen. In dieser Datei werden wir die Sitzung starten und überprüfen, ob ein Benutzer bereits angemeldet ist. Wenn ja, werden wir den Benutzer zur Datei welcome.php umleiten.

PHP

 

Schritt 5: Registrierungsformular in PHP erstellen

Schließlich ist es an der Zeit, einen PHP-Code zu erstellen, der es Benutzern ermöglicht, ihre Konten im System zu registrieren. Dieser PHP-Code wird die Benutzer mit einem Fehler benachrichtigen, wenn ein Benutzer bereits mit derselben E-Mail-Adresse registriert ist.

Ersetzen Sie den folgenden Code in der Datei register.php.

PHP

 

prepare("SELECT * FROM users WHERE email = ?")) {
        $error = '';
        // Parameter binden (s = string, i = int, b = blob usw.), in unserem Fall ist der Benutzername ein String, also verwenden wir "s"
	$query->bind_param('s', $email);
	$query->execute();
	// Ergebnis speichern, damit wir überprüfen können, ob das Konto in der Datenbank existiert.
	$query->store_result();
        if ($query->num_rows > 0) {
            $error .= '

The email address is already registered!

'; } else { // Passwort validieren if (strlen($password ) < 6) { $error .= '

Password must have atleast 6 characters.

'; } // Passwort bestätigen validieren if (empty($confirm_password)) { $error .= '

Please enter confirm password.

'; } else { if (empty($error) && ($password != $confirm_password)) { $error .= '

Password did not match.

'; } } if (empty($error) ) { $insertQuery = $db->prepare("INSERT INTO users (name, email, password) VALUES (?, ?, ?);"); $insertQuery->bind_param("sss", $fullname, $email, $password_hash); $result = $insertQuery->execute(); if ($result) { $error .= '

Your registration was successful!

'; } else { $error .= '

Something went wrong!

'; } } } } $query->close(); $insertQuery->close(); // DB-Verbindung schließen mysqli_close($db); } ?> Sign Up

Register

Please fill this form to create an account.

Already have an account? Login here.

Sobald der Benutzer auf die Schaltfläche „Absenden“ klickt, wird überprüft, ob $_SERVER["REQUEST_METHOD"] == "POST" und ob die Variable $_POST['submit'] gesetzt wurde. Aus Sicherheitsgründen empfehlen wir immer, das Passwort nicht im Klartext in der Datenbank zu speichern. Wir haben die Funktion password_hash() verwendet, die einen neuen Passworthash unter Verwendung eines starken Einweg-Hashing-Algorithmus erstellt.

Das obige PHP-Skript überprüft, dass kein Benutzer mit derselben E-Mail-Adresse registriert ist, und überprüft auch das Passwort. Nach Bestätigung der Validierung speichern wir die vom Benutzer bereitgestellten Informationen in der Benutzertabelle und benachrichtigen den Benutzer, dass die Registrierung erfolgreich war.

3) Aufbau eines Anmelde-Systems

In diesem Teil erstellen wir ein Anmeldeformular, damit Benutzer auf den eingeschränkten Bereich des Systems zugreifen können. In unserem Fall ist der eingeschränkte Bereich eine Willkommensseite, die wir im nächsten Teil behandeln werden.

Schritt 1: Erstellen eines Anmeldeformulars in HTML

Hier ist das Anmeldeformular in HTML. Fügen Sie es in eine Datei mit dem Namen login.php ein.

HTML

 

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Login</title>
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css">
    </head>
    <body>
        <div class="container">
            <div class="row">
                <div class="col-md-12">
                    <h2>Login</h2>
                    <p>Please fill in your email and password.</p>
                    <form action="" method="post">
                        <div class="form-group">
                            <label>Email Address</label>
                            <input type="email" name="email" class="form-control" required />
                        </div>    
                        <div class="form-group">
                            <label>Password</label>
                            <input type="password" name="password" class="form-control" required>
                        </div>
                        <div class="form-group">
                            <input type="submit" name="submit" class="btn btn-primary" value="Submit">
                        </div>
                        <p>Don't have an account? <a href="register.php">Register here</a>.</p>
                    </form>
                </div>
            </div>
        </div>    
    </body>
</html>

Die Ausgabe des obigen Codes wird so aussehen

Login

Schritt 2: Erstellen eines Anmeldesystems in PHP

Nachdem wir das Anmeldeformular in HTML erstellt haben, werden wir einen Code schreiben, um die Anmeldeinformationen zu validieren. Beim Absenden des Formulars überprüfen wir, ob die E-Mail und das Passwort ausgefüllt sind. Wenn sie ausgefüllt sind, führen wir eine SELECT-Abfrage aus, um den Datensatz in einer Datenbank anhand von E-Mail und Passwort zu finden. Wenn ein Datensatz gefunden wird, speichern wir die "UserID" in der Sitzung und der Benutzer wird zur Datei welcome.php weitergeleitet, andernfalls wird der Benutzer mit einer Fehlermeldung benachrichtigt.

Ersetzen wir den folgenden Code in der Datei login.php.

PHP

 

Please enter email.';
    }

    // Überprüfen, ob das Passwort leer ist
    if (empty($password)) {
        $error .= '

Please enter your password.

'; } if (empty($error)) { if($query = $db->prepare("SELECT * FROM users WHERE email = ?")) { $query->bind_param('s', $email); $query->execute(); $row = $query->fetch(); if ($row) { if (password_verify($password, $row['password'])) { $_SESSION["userid"] = $row['id']; $_SESSION["user"] = $row; // Benutzer zur Willkommensseite weiterleiten header("location: welcome.php"); exit; } else { $error .= '

The password is not valid.

'; } } else { $error .= '

No User exist with that email address.

'; } } $query->close(); } // Verbindung schließen mysqli_close($db); } ?> Login

Login

Please fill in your email and password.

Don't have an account? Register here.

4) Erstellen einer Willkommensseite

Nachfolgend finden Sie den Code für die Datei welcome.php. Benutzer werden nach einem erfolgreichen Anmeldevorgang auf diese Seite weitergeleitet. Wir haben etwas Code am Anfang der Seite hinzugefügt, um zu überprüfen, ob der Benutzer nicht angemeldet ist, und ihn dann zur Anmeldeseite weiterzuleiten.

Erstellen wir eine Datei welcome.php und fügen wir den folgenden Code ein.

PHP

 







Welcome <?php echo $_SESSION["name"]; ?>



Hello, . Welcome to demo site.

Log Out

5) Das Logout-Skript

Zum Schluss erstellen wir eine Datei logout.php mit folgendem Code.

PHP

 

Sobald der Benutzer auf den Abmelden-Link klickt, wird das obige Skript aufgerufen, um die Sitzung zu beenden und den Benutzer zur login.php-Datei weiterzuleiten.

Fazit

In diesem Tutorial habe ich erklärt, wie Sie ein Login-System mit HTML, PHP und MySQL erstellen können. Sobald Sie verstanden haben, wie einfach es ist, ein Login-System zu erstellen, können Sie weitere Funktionen hinzufügen, wie Passwort zurücksetzen, Passwort vergessen, E-Mail-Adresse verifizieren, Benutzerprofil bearbeiten usw.

Source:
https://dzone.com/articles/create-a-login-system-using-php