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
- Anforderungen
- Registrierungssystem
- Anmeldesystem
- Willkommensseite
- 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.
<!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.
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.
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.
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.
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.
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.
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.
<!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
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.
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.
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.
Welcome
Hello, . Welcome to demo site.
5) Das Logout-Skript
Zum Schluss erstellen wir eine Datei logout.php mit folgendem Code.
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