- See all webinar registrations in one place.
- Edit attendee details and archive old records safely.
- Export filtered data to CSV and watch the daily chart update automatically.
getMessage()); $adminCount = 0; $adminError = 'Unable to load admin access right now. Please try again in a moment.'; } if ($_SERVER['REQUEST_METHOD'] === 'POST') { $loginType = $_POST['login_type'] ?? ''; if ($loginType === 'admin_setup' && $adminCount === 0) { $displayName = trim((string) ($_POST['display_name'] ?? '')); $email = strtolower(trim((string) ($_POST['email'] ?? ''))); $password = (string) ($_POST['password'] ?? ''); $passwordConfirm = (string) ($_POST['password_confirm'] ?? ''); if ($displayName === '') { $adminError = 'Enter an admin name to finish setup.'; } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $adminError = 'Enter a valid admin email address.'; } elseif (strlen($password) < 10) { $adminError = 'Admin password must be at least 10 characters.'; } elseif ($password !== $passwordConfirm) { $adminError = 'Admin passwords do not match.'; } else { try { $newAdminId = admin_create_user($email, $password, $displayName); admin_login_user([ 'id' => $newAdminId, 'email' => $email, 'display_name' => $displayName, ]); admin_set_flash('Admin access has been created successfully.'); header('Location: admin.php'); exit; } catch (PDOException $e) { error_log('Admin setup failed: ' . $e->getMessage()); $adminError = 'Could not create the admin user. Please try a different email.'; } } } if ($loginType === 'admin_login' && $adminCount > 0) { $email = strtolower(trim((string) ($_POST['email'] ?? ''))); $password = (string) ($_POST['password'] ?? ''); if (!filter_var($email, FILTER_VALIDATE_EMAIL) || $password === '') { $adminError = 'Enter your admin email and password.'; } else { try { $admin = admin_get_by_email($email); if ($admin && password_verify($password, $admin['password_hash'])) { admin_login_user($admin); header('Location: admin.php'); exit; } $adminError = 'Invalid admin email or password.'; } catch (PDOException $e) { error_log('Admin login failed: ' . $e->getMessage()); $adminError = 'Admin login is temporarily unavailable.'; } } } } ?>
Use the admin area to manage registrations, edit attendee data, export CSV, and track daily signup trends.