Ein sehr einfaches Beispiel mit Verwendung von Session Cookies. Erstelle eine MySQL-Datenbank und eine Tabelle für die Benutzer
CREATE DATABASE login_system;
USE login_system;
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL UNIQUE,
password_hash VARCHAR(255) NOT NULL
);
Erstelle ein Registrierungsformular und speichere die Benutzerdaten in der Datenbank
<form action="register.php" method="POST">
<label>Username:</label>
<input type="text" name="username" required>
<label>Password:</label>
<input type="password" name="password" required>
<button type="submit">Register</button>
</form>
Code: register.php
<?php
// Datenbankverbindung
$conn = new mysqli("localhost", "root", "", "login_system");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $conn->real_escape_string($_POST['username']);
$password = $_POST['password'];
$passwordHash = password_hash($password, PASSWORD_BCRYPT);
$sql = "INSERT INTO users (username, password_hash) VALUES ('$username', '$passwordHash')";
if ($conn->query($sql)) {
echo "Registration successful!";
} else {
echo "Error: " . $conn->error;
}
}
$conn->close();
?>
Erstelle ein Login-Formular und überprüfe die Anmeldedaten
<form action="login.php" method="POST">
<label>Username:</label>
<input type="text" name="username" required>
<label>Password:</label>
<input type="password" name="password" required>
<button type="submit">Login</button>
</form>
Code: login.php
<?php
session_start();
// Datenbankverbindung
$conn = new mysqli("localhost", "root", "", "login_system");
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = $conn->real_escape_string($_POST['username']);
$password = $_POST['password'];
$sql = "SELECT id, password_hash FROM users WHERE username = '$username'";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
$row = $result->fetch_assoc();
if (password_verify($password, $row['password_hash'])) {
$_SESSION['user_id'] = $row['id'];
echo "Login successful!";
} else {
echo "Invalid password.";
}
} else {
echo "User not found.";
}
}
$conn->close();
?>
Geschützte Seite erstellen
<?php
session_start();
if (!isset($_SESSION['user_id'])) {
die("Access denied. Please <a href='login_form.html'>login</a>.");
}
echo "Welcome to the protected page!";
?>
Benutzer abmelden
<?php
session_start();
session_unset();
session_destroy();
header("Location: login_form.html");
exit;
?>