false, 'message' => 'Sesi login tidak valid. Silakan login ulang.', ]); } else { header('Location: login.php'); } exit; } function current_admin_name(): string { start_admin_session(); return (string)($_SESSION['admin_name'] ?? $_SESSION['admin_username'] ?? 'Admin'); } function ensure_admin_table(PDO $pdo): void { $pdo->exec(" CREATE TABLE IF NOT EXISTS admins ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, nama VARCHAR(100) NOT NULL DEFAULT 'Administrator', is_active TINYINT(1) NOT NULL DEFAULT 1, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci "); $count = (int)$pdo->query("SELECT COUNT(*) FROM admins")->fetchColumn(); if ($count === 0) { $stmt = $pdo->prepare("INSERT INTO admins (username, password_hash, nama) VALUES (?, ?, ?)"); $stmt->execute([ 'admin', password_hash('admin123', PASSWORD_DEFAULT), 'Administrator', ]); } }