window.top.location.href = "dashboard.php";'; exit; } $errors = []; $registered_success = isset($_GET['registered']); // This block now only handles the STANDARD (non-fetch) form submission. if ($_SERVER["REQUEST_METHOD"] == "POST") { echo '
DEBUG: Standard POST handler reached.
'; echo '
DEBUG: $_POST data: ' . htmlspecialchars(print_r($_POST, true)) . '
'; $email = trim($_POST['login_email']); $password = $_POST['login_pass']; if (empty($email)) { $errors[] = 'Email is required.'; } if (empty($password)) { $errors[] = 'Password is required.'; } if (empty($errors)) { try { $pdo = db(); $stmt = $pdo->prepare("SELECT id, display_name, password_hash FROM users WHERE email = ?"); $stmt->execute([$email]); $user = $stmt->fetch(); if ($user && password_verify($password, $user['password_hash'])) { $_SESSION['user_id'] = $user['id']; $_SESSION['display_name'] = $user['display_name']; // Use JS redirect for consistency echo ''; exit; } else { $errors[] = 'Invalid email or password.'; } } catch (PDOException $e) { error_log("Database error in login.php (Standard): " . $e->getMessage()); $errors[] = 'A server error occurred. Please try again later.'; } } } ?>

Sign In