PHP Fehler?
Moinsen Leude,
Ich bin gerade etwas am verzweifeln. Ich arbeite noch nicht so lange mit php und stoße die ganze zeit immer wieder auf den gleichen fehler:
Warning: Undefined array key "password" in C:\xampp\htdocs\website\metropolisx\index.php on line 21
Hier die PHP-Datei um die es geht:
<?php
session_start();
require_once "includes/config.php"; // Datenbankverbindung
$error = "";
// Nur fortfahren, wenn das Formular per POST abgesendet wurde
if ($_SERVER["REQUEST_METHOD"] == "POST") {
// Überprüfen, ob die Felder 'username' und 'password' in $_POST gesetzt sind
$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
// Überprüfen, ob beide Felder nicht leer sind
if (!empty($username) && !empty($password)) {
// Datenbankabfrage, um den Benutzer zu finden
$stmt = $pdo->prepare("SELECT * FROM accounts WHERE USERNAME = ?");
$stmt->execute([$username]);
$user = $stmt->fetch();
// Wenn der Benutzer existiert und das Passwort korrekt ist
if ($user && password_verify($password, $user['password'])) {
$_SESSION['user'] = $user['username'];
// Weiterleitung zum Dashboard
header("Location: pages/dashboard.php");
exit();
} else {
$error = "Falsche Anmeldedaten!";
}
} else {
// Fehlermeldung, wenn eines der Felder leer ist
$error = "Bitte Benutzername und Passwort eingeben!";
}
}
?>
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Login | MetropolisX</title>
<link rel="stylesheet" href="css/style.css">
</head>
<body>
<div class="login-container">
<h2>MetropolisX - Login</h2>
<?php if ($error): ?>
<p class="error"><?php echo htmlspecialchars($error); ?></p>
<?php endif; ?>
<form method="post">
<input type="text" name="username" placeholder="Benutzername" required>
<input type="password" name="password" placeholder="Passwort" required>
<button type="submit">Anmelden</button>
</form>
</div>
</body>
</html>
Wenn einer von euch weiß warum ich diesen fehler die ganze zeit kriege, gebt gerne bescheid. Danke schonmal im vorraus :D