Từ:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
[...]
if ($settings['create_admins'] > 0 || $admin['super_admin'] > 0 ) {
$admin thuộc loại PDOStatament là một lớp chứ không phải một mảng. Do đó, bạn không thể gọi [] toán tử trên đó.
Ngoài ra, bạn thực sự không nên gán cho $admin đến kết quả trả về của mọi phương thức vì hầu hết PDOStatament Các phương thức của trả về giá trị boolean:
$admin = $CONNECT_TO_DATABASE->prepare("SELECT * FROM admin WHERE username = :username");
$admin->bindValue(':username', $_SESSION['user']);
$admin->execute();
Để truy xuất super_admin từ admin bảng bạn nên thêm (sau execute() tuyên bố):
$result = $admin->fetch(PDO::FETCH_ASSOC);
sẽ điền (hy vọng, nó phụ thuộc vào lược đồ bảng là gì) $result['super_admin'] .