From d8c7540083a019b97bb6ac4827d1aa3d5131107e Mon Sep 17 00:00:00 2001 From: Noah Date: Fri, 5 Jun 2026 11:59:05 +0200 Subject: [PATCH] suppression des fichiers inutiles / parties de codes inutiles / liens entre lespages --- controllers/auth_ctrl2.php | 51 +++------ controllers/modif_compte_ctrl.php | 68 ++++++------ controllers/utilisateur_ctrl.php | 60 +++++------ css/global.css | 16 +++ index.php | 41 +++---- models/modif_compte_model.php | 82 ++++++-------- models/user_crud.php | 15 +-- models/utilisateur_crud.php | 15 +++ views/contact_views.php | 85 ++++++++------- views/creation_compte_view.php | 42 +++----- views/header.php | 33 +++--- views/login_views.php | 18 ++-- views/modif_compte_view.php | 170 ++++++++++++------------------ 13 files changed, 318 insertions(+), 378 deletions(-) diff --git a/controllers/auth_ctrl2.php b/controllers/auth_ctrl2.php index 04e05e9..5ea9b0b 100644 --- a/controllers/auth_ctrl2.php +++ b/controllers/auth_ctrl2.php @@ -1,63 +1,46 @@ diff --git a/controllers/utilisateur_ctrl.php b/controllers/utilisateur_ctrl.php index 789b847..30a448e 100644 --- a/controllers/utilisateur_ctrl.php +++ b/controllers/utilisateur_ctrl.php @@ -1,41 +1,37 @@ Erreur : Le nom ou le login contient des caractère non autorisés."; - require('views/creation_compte_view.php'); - - } else { - - $mdp_hache = password_hash($mdp, PASSWORD_DEFAULT); - - create_utilisateur_crud($nom, $prenom, $role, $nomdep, $num_tel, $login, $mdp_hache); - - $_SESSION['notification'] = "Ajout du nouvel utilisateur réussi"; - - header('Location: index.php'); - exit(); - } + if ($_SERVER['REQUEST_METHOD'] !== 'POST') { + header('Location: index.php?route=add_utilisateurs_form'); + exit; } + + $nom = $_POST['nom']; + $prenom = $_POST['prenom']; + $role = $_POST['role']; + $nomdep = $_POST['nomdep']; + $num_tel = $_POST['num_tel']; + $login = $_POST['login']; + $mdp = $_POST['mdp']; + + if (!preg_match('/^[a-zA-Z0-9_-]+$/', $login)) { + $_SESSION['notification'] = 'Erreur : le login contient des caractères non autorisés.'; + require('views/creation_compte_view.php'); + return; + } + + $mdp_hache = password_hash($mdp, PASSWORD_DEFAULT); + + require('models/connection.php'); + $c = connection(); + require('models/utilisateur_crud.php'); + create_utilisateur_crud($c, $nom, $prenom, $role, $nomdep, $num_tel, $login, $mdp_hache); + + $_SESSION['notification'] = 'Utilisateur créé avec succès.'; + header('Location: index.php'); + exit; } diff --git a/css/global.css b/css/global.css index 3d29a12..f76742e 100644 --- a/css/global.css +++ b/css/global.css @@ -80,6 +80,22 @@ article { article h2 { color: #3b4a2e; margin-top: 0; } +/* SOUS-NAVIGATION */ +.sub-nav { + margin-bottom: 15px; + padding-bottom: 10px; + border-bottom: 1px solid #e8e2d2; +} + +.sub-nav a { + display: inline-block; + margin-right: 15px; + color: #c49a3c; + text-decoration: none; +} + +.sub-nav a:hover { text-decoration: underline; } + /* TABLEAUX */ table { width: 100%; border-collapse: collapse; margin: 10px 0; } table th { background: #f8f6f0; color: #3b4a2e; padding: 10px; text-align: left; border-bottom: 2px solid #c49a3c; } diff --git a/index.php b/index.php index b580207..a89fbc0 100644 --- a/index.php +++ b/index.php @@ -35,37 +35,13 @@ require('views/welcome_view.php'); break; - case 'families': - require('controllers/family_ctrl.php'); - families_list_ctrl(); - break; - - case 'family': - require('controllers/family_ctrl.php'); - family_print_ctrl(); - break; - - case 'contact': - require('views/contact_view.php'); - break; - - case 'solutions': - require('controllers/solution_ctrl.php'); - solutions_list_ctrl(); - break; - - case 'add_equipment': - require('controllers/equipment_ctrl.php'); - add_equipment_ctrl(); - break; - case 'auth': - require('controllers/auth_ctrl.php'); + require('controllers/auth_ctrl2.php'); login_ctrl(); break; - + case 'logout': - require('controllers/auth_ctrl.php'); + require('controllers/auth_ctrl2.php'); logout_ctrl(); break; @@ -78,7 +54,16 @@ require('controllers/utilisateur_ctrl.php'); add_utilisateurs_write_ctrl(); break; - + + case 'modif_utilisateurs_form': + require('controllers/modif_compte_ctrl.php'); + modif_utilisateurs_form_ctrl(); + break; + + case 'modif_utilisateurs': + require('controllers/modif_compte_ctrl.php'); + modif_utilisateurs_write_ctrl(); + break; case 'operations': require('views/operations_view.php'); diff --git a/models/modif_compte_model.php b/models/modif_compte_model.php index 5743a1c..e77e919 100644 --- a/models/modif_compte_model.php +++ b/models/modif_compte_model.php @@ -1,56 +1,44 @@ query($req); + $comptes = $res->fetchAll(PDO::FETCH_ASSOC); + $res->closeCursor(); + return $comptes; } -// Fonction pour récupérer un seul compte à partir de son ID -function getCompteById($conn, $id) { - $sql = "SELECT Utilisateur.ID, Utilisateur.login, Utilisateur.type, - Sauveteur.nom, Sauveteur.prenom, Sauveteur.departement, Sauveteur.NumTel - FROM Utilisateur - JOIN Sauveteur ON Sauveteur.ID = Utilisateur.ID - WHERE Utilisateur.ID = $id"; - - $result = mysqli_query($conn, $sql); - // On retourne directement la ligne du résultat - return mysqli_fetch_assoc($result); +// Récupère un compte par son ID +function get_compte_by_id(PDO $c, int $id): ?array { + $req = "SELECT ID, login, type, nom, prenom, nomdep, num_tel FROM Utilisateur WHERE ID = :id"; + $prep = $c->prepare($req); + $prep->bindValue(':id', $id, PDO::PARAM_INT); + $prep->execute(); + $compte = $prep->fetch(PDO::FETCH_ASSOC); + $prep->closeCursor(); + return $compte ?: null; } -// Fonction pour mettre à jour un compte dans la base de données -function updateCompte($conn, $id, $nom, $prenom, $role, $departement, $numtel, $login, $passwd) { +// Met à jour un compte utilisateur +function update_compte(PDO $c, int $id, string $nom, string $prenom, string $role, string $nomdep, string $num_tel, string $login, string $passwd): void { + $req = "UPDATE Utilisateur SET nom = :nom, prenom = :prenom, type = :role, nomdep = :dep, num_tel = :tel, login = :login WHERE ID = :id"; + $prep = $c->prepare($req); + $prep->bindValue(':nom', $nom); + $prep->bindValue(':prenom', $prenom); + $prep->bindValue(':role', $role); + $prep->bindValue(':dep', $nomdep); + $prep->bindValue(':tel', $num_tel); + $prep->bindValue(':login', $login); + $prep->bindValue(':id', $id, PDO::PARAM_INT); + $prep->execute(); - // Mise à jour de la table Sauveteur (nom, prénom, département, téléphone) - $sql1 = "UPDATE Sauveteur - SET nom = '$nom', prenom = '$prenom', departement = '$departement', NumTel = '$numtel' - WHERE ID = $id"; - mysqli_query($conn, $sql1); - - // Mise à jour de la table Utilisateur (login, type/rôle) - $sql2 = "UPDATE Utilisateur - SET login = '$login', type = '$role' - WHERE ID = $id"; - mysqli_query($conn, $sql2); - - // On met à jour le mot de passe seulement si l'utilisateur en a saisi un nouveau - if ($passwd != "") { - // On utilise password_hash pour ne pas stocker le mot de passe en clair - $passwd_hash = password_hash($passwd, PASSWORD_DEFAULT); - $sql3 = "UPDATE Utilisateur - SET passwd = '$passwd_hash' - WHERE ID = $id"; - mysqli_query($conn, $sql3); + if (!empty($passwd)) { + $hash = password_hash($passwd, PASSWORD_DEFAULT); + $req2 = "UPDATE Utilisateur SET passwd = :passwd WHERE ID = :id"; + $prep = $c->prepare($req2); + $prep->bindValue(':passwd', $hash); + $prep->bindValue(':id', $id, PDO::PARAM_INT); + $prep->execute(); } } -?> diff --git a/models/user_crud.php b/models/user_crud.php index da9d67f..88d2eab 100644 --- a/models/user_crud.php +++ b/models/user_crud.php @@ -1,16 +1,11 @@ prepare($req); - $prep->bindValue(':id', $id); + $prep = $c->prepare($req); + $prep->bindValue(':login', $login); $prep->execute(); $auth = $prep->fetch(PDO::FETCH_ASSOC); $prep->closeCursor(); - return $auth; - } - \ No newline at end of file + return $auth ?: null; +} diff --git a/models/utilisateur_crud.php b/models/utilisateur_crud.php index e69de29..a95829c 100644 --- a/models/utilisateur_crud.php +++ b/models/utilisateur_crud.php @@ -0,0 +1,15 @@ +prepare($req); + $prep->bindValue(':login', $login); + $prep->bindValue(':passwd', $mdp_hache); + $prep->bindValue(':type', $role); + $prep->bindValue(':nom', $nom); + $prep->bindValue(':prenom', $prenom); + $prep->bindValue(':nomdep', $nomdep); + $prep->bindValue(':num_tel', $num_tel); + $prep->execute(); +} diff --git a/views/contact_views.php b/views/contact_views.php index 93fa94e..515fa5c 100644 --- a/views/contact_views.php +++ b/views/contact_views.php @@ -1,45 +1,50 @@ - + -

Ajouts de personnes

+

Ajout de personnes

+ +
+

Nom :

+

Prénom :

+

Département :

- -

Nom :

-

Prénom :

-
-

Département :

- - -

- -

-

- - -

-
- - -
-

- - - + + +

+

+ + +

- + + +

+ +

+ + +

+ +

+ + +

+ + + diff --git a/views/creation_compte_view.php b/views/creation_compte_view.php index 140af5e..32921c2 100644 --- a/views/creation_compte_view.php +++ b/views/creation_compte_view.php @@ -1,15 +1,12 @@ - - + -