= $max_attempts) { $elapsed = time() - $_SESSION['last_attempt']; if ($elapsed < $lockout_duration) { $locked_out = true; $lockout_remaining = $lockout_duration - $elapsed; } else { // Reset after lockout period $_SESSION['login_attempts'] = 0; } } /* ================= HANDLE LOGIN ================= */ $error = ''; $success = false; if ($_SERVER['REQUEST_METHOD'] === 'POST' && !$locked_out) { $username = trim($_POST['username'] ?? ''); $password = $_POST['password'] ?? ''; if (empty($username) || empty($password)) { $error = 'Please fill in all fields.'; } elseif ($username === ADMIN_USERNAME && $password === ADMIN_PASSWORD) { // Success session_regenerate_id(true); $_SESSION['admin_logged_in'] = true; $_SESSION['login_time'] = time(); $_SESSION['admin_user'] = $username; $_SESSION['login_attempts'] = 0; header('Location: index.php'); exit; } else { $_SESSION['login_attempts']++; $_SESSION['last_attempt'] = time(); $remaining = $max_attempts - $_SESSION['login_attempts']; if ($remaining > 0) { $error = 'Invalid username or password. ' . $remaining . ' attempt' . ($remaining === 1 ? '' : 's') . ' remaining.'; } else { $error = 'Too many failed attempts. You are locked out for ' . round($lockout_duration / 60) . ' minutes.'; } } } ?> SabiShares — Admin Login
Admin Portal