prepare('SELECT COUNT(*) FROM tbl_auth WHERE cl_auth_user = :cl_auth_user'); $stmt_duplicate_user->execute([ 'cl_auth_user' => $submitted_cl_auth_user, ]); $cl_auth_user_total = (int) $stmt_duplicate_user->fetchColumn(); if ($cl_auth_user_total > 0) { auth_flash_set('error', 'Ce login existe déjà.'); header('Location: admin.php'); exit; } $cl_auth_user = $submitted_cl_auth_user; $cl_auth_pass = password_hash($submitted_cl_auth_pass, PASSWORD_DEFAULT); $cl_auth_right = $submitted_cl_auth_right; $stmt_create_user = db()->prepare( 'INSERT INTO tbl_auth (cl_auth_user, cl_auth_pass, cl_auth_right) VALUES (:cl_auth_user, :cl_auth_pass, :cl_auth_right)' ); $stmt_create_user->execute([ 'cl_auth_user' => $cl_auth_user, 'cl_auth_pass' => $cl_auth_pass, 'cl_auth_right' => $cl_auth_right, ]); auth_flash_set('success', 'Compte créé avec succès.'); header('Location: admin.php'); exit; } if ($admin_action === 'update') { $cl_auth_id = (int) ($_POST['cl_auth_id'] ?? 0); $submitted_cl_auth_user = trim((string) ($_POST['cl_auth_user'] ?? '')); $submitted_cl_auth_pass = (string) ($_POST['cl_auth_pass'] ?? ''); $submitted_cl_auth_right = (string) ($_POST['cl_auth_right'] ?? 'member'); if ($cl_auth_id <= 0 || $submitted_cl_auth_user === '') { auth_flash_set('error', 'Données de modification invalides.'); header('Location: admin.php'); exit; } if (!in_array($submitted_cl_auth_right, ['admin', 'member'], true)) { auth_flash_set('error', 'Droit utilisateur invalide.'); header('Location: admin.php?edit=' . $cl_auth_id); exit; } $stmt_tbl_auth = db()->prepare('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth WHERE cl_auth_id = :cl_auth_id LIMIT 1'); $stmt_tbl_auth->execute([ 'cl_auth_id' => $cl_auth_id, ]); $tbl_auth = $stmt_tbl_auth->fetch(); if (!$tbl_auth) { auth_flash_set('error', 'Utilisateur introuvable.'); header('Location: admin.php'); exit; } $current_cl_auth_id = (int) $tbl_auth['cl_auth_id']; $current_cl_auth_user = (string) $tbl_auth['cl_auth_user']; $current_cl_auth_pass = (string) $tbl_auth['cl_auth_pass']; $current_cl_auth_right = (string) $tbl_auth['cl_auth_right']; unset($current_cl_auth_id, $current_cl_auth_user); $stmt_duplicate_user = db()->prepare( 'SELECT COUNT(*) FROM tbl_auth WHERE cl_auth_user = :cl_auth_user AND cl_auth_id <> :cl_auth_id' ); $stmt_duplicate_user->execute([ 'cl_auth_user' => $submitted_cl_auth_user, 'cl_auth_id' => $cl_auth_id, ]); $cl_auth_user_total = (int) $stmt_duplicate_user->fetchColumn(); if ($cl_auth_user_total > 0) { auth_flash_set('error', 'Ce login existe déjà.'); header('Location: admin.php?edit=' . $cl_auth_id); exit; } if ($current_cl_auth_right === 'admin' && $submitted_cl_auth_right !== 'admin') { $stmt_admin_total = db()->query("SELECT COUNT(*) FROM tbl_auth WHERE cl_auth_right = 'admin'"); $cl_auth_admin_total = (int) $stmt_admin_total->fetchColumn(); if ($cl_auth_admin_total <= 1) { auth_flash_set('error', 'Impossible de rétrograder le dernier administrateur.'); header('Location: admin.php?edit=' . $cl_auth_id); exit; } } $cl_auth_user = $submitted_cl_auth_user; $cl_auth_right = $submitted_cl_auth_right; $cl_auth_pass = $current_cl_auth_pass; if ($submitted_cl_auth_pass !== '') { $cl_auth_pass = password_hash($submitted_cl_auth_pass, PASSWORD_DEFAULT); } $stmt_update_user = db()->prepare( 'UPDATE tbl_auth SET cl_auth_user = :cl_auth_user, cl_auth_pass = :cl_auth_pass, cl_auth_right = :cl_auth_right WHERE cl_auth_id = :cl_auth_id' ); $stmt_update_user->execute([ 'cl_auth_user' => $cl_auth_user, 'cl_auth_pass' => $cl_auth_pass, 'cl_auth_right' => $cl_auth_right, 'cl_auth_id' => $cl_auth_id, ]); if (isset($_SESSION['user']) && $_SESSION['user'] === $tbl_auth['cl_auth_user']) { $_SESSION['user'] = $cl_auth_user; $_SESSION['role'] = $cl_auth_right; } auth_flash_set('success', 'Compte modifié avec succès.'); header('Location: admin.php'); exit; } if ($admin_action === 'delete') { $cl_auth_id = (int) ($_POST['cl_auth_id'] ?? 0); if ($cl_auth_id <= 0) { auth_flash_set('error', 'Suppression impossible.'); header('Location: admin.php'); exit; } $stmt_tbl_auth = db()->prepare('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth WHERE cl_auth_id = :cl_auth_id LIMIT 1'); $stmt_tbl_auth->execute([ 'cl_auth_id' => $cl_auth_id, ]); $tbl_auth = $stmt_tbl_auth->fetch(); if (!$tbl_auth) { auth_flash_set('error', 'Utilisateur introuvable.'); header('Location: admin.php'); exit; } $cl_auth_user = (string) $tbl_auth['cl_auth_user']; $cl_auth_pass = (string) $tbl_auth['cl_auth_pass']; $cl_auth_right = (string) $tbl_auth['cl_auth_right']; unset($cl_auth_pass); if ($cl_auth_right === 'admin') { $stmt_admin_total = db()->query("SELECT COUNT(*) FROM tbl_auth WHERE cl_auth_right = 'admin'"); $cl_auth_admin_total = (int) $stmt_admin_total->fetchColumn(); if ($cl_auth_admin_total <= 1) { auth_flash_set('error', 'Impossible de supprimer le dernier administrateur.'); header('Location: admin.php'); exit; } } $stmt_delete_user = db()->prepare('DELETE FROM tbl_auth WHERE cl_auth_id = :cl_auth_id'); $stmt_delete_user->execute([ 'cl_auth_id' => $cl_auth_id, ]); if (isset($_SESSION['user']) && $_SESSION['user'] === $cl_auth_user) { header('Location: logout.php'); exit; } auth_flash_set('success', 'Compte supprimé avec succès.'); header('Location: admin.php'); exit; } } if ($edit_cl_auth_id > 0) { $stmt_edit_user = db()->prepare('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth WHERE cl_auth_id = :cl_auth_id LIMIT 1'); $stmt_edit_user->execute([ 'cl_auth_id' => $edit_cl_auth_id, ]); $tbl_auth = $stmt_edit_user->fetch(); if ($tbl_auth) { $edit_cl_auth_id = (int) $tbl_auth['cl_auth_id']; $edit_cl_auth_user = (string) $tbl_auth['cl_auth_user']; $edit_cl_auth_pass = (string) $tbl_auth['cl_auth_pass']; $edit_cl_auth_right = (string) $tbl_auth['cl_auth_right']; unset($edit_cl_auth_pass); } else { $edit_cl_auth_id = 0; auth_flash_set('error', 'Utilisateur introuvable.'); header('Location: admin.php'); exit; } } $stmt_users = db()->query('SELECT cl_auth_id, cl_auth_user, cl_auth_pass, cl_auth_right FROM tbl_auth ORDER BY cl_auth_user ASC'); $tbl_auth_all = $stmt_users->fetchAll(); $csrf_token = auth_csrf_token(); [$default_admin_user, $default_admin_password] = auth_default_admin_credentials(); $current_session_user = isset($_SESSION['user']) ? (string) $_SESSION['user'] : ''; ?> Administration Sécure | R.E.A.C.T.

R.E.A.C.T. Core Admin

Niveau d'accès : Administrateur | Session :

Sécurité critique : Les identifiants par défaut sont actifs. ( / )
Veuillez modifier ces accès dès maintenant.

0 ? 'Mise à jour sujet' : 'Nouveau sujet'; ?>

0): ?>
0 ? '' : 'required'; ?> placeholder="••••••••">
0): ?>Annuler

Base de données sujets

UID Sujet Accréditation Opérations
Aucun sujet détecté dans la base.
#
Editer