suppression des fichiers inutiles / parties de codes inutiles / liens entre lespages

This commit is contained in:
Noah 2026-06-05 11:59:05 +02:00
parent 9a3cbdcb81
commit d8c7540083
13 changed files with 318 additions and 378 deletions

View file

@ -1,7 +1,4 @@
<?php <?php
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 1);
function login_ctrl() { function login_ctrl() {
$ask_route = null; $ask_route = null;
@ -9,55 +6,41 @@ function login_ctrl() {
$ask_route = htmlentities($_GET['ask']); $ask_route = htmlentities($_GET['ask']);
} }
// Si le formulaire est soumis (POST), on vérifie, sinon on l'affiche
if ($_SERVER['REQUEST_METHOD'] == 'POST') { if ($_SERVER['REQUEST_METHOD'] == 'POST') {
verify_login_ctrl($ask_route); verify_login_ctrl($ask_route);
} else { } else {
login_form_ctrl($ask_route); login_form_ctrl($ask_route);
} }
} }
function verify_login_ctrl(?string $route) { function verify_login_ctrl(?string $route) {
require('models/user_crud.php');
require('config/config.php');
$login = isset($_POST['login']) ? htmlentities($_POST['login']) : ''; $login = isset($_POST['login']) ? htmlentities($_POST['login']) : '';
$passwd = isset($_POST['password']) ? htmlentities($_POST['password']) : ''; $passwd = isset($_POST['password']) ? $_POST['password'] : '';
$user_data = recuperation_auth($connex, $login);
if ($user_data && $user_data['passwd'] === $passwd) { require('models/connection.php');
$c = connection();
require('models/user_crud.php');
$_SESSION['login'] = $user_data['login']; $user = recuperation_auth($c, $login);
$_SESSION['role'] = $user_data['type'];
// Redirection if ($user && password_verify($passwd, $user['passwd'])) {
$_SESSION['login'] = $user['login'];
$_SESSION['role'] = $user['type'];
header('Location: index.php?route=' . $route); header('Location: index.php?route=' . $route);
exit; exit;
} else { } else {
echo 'Erreur d\'authentification.';
echo 'Authentication error !!!';
exit; exit;
} }
} }
/**
* Contrôleur de déconnexion
*/
function login_form_ctrl(?string $route) { function login_form_ctrl(?string $route) {
require('views/login_view.php'); require('views/login_views.php');
login_form_view($route); login_form_view($route);
} }
/**
* Authentication processing
*/
function logout_ctrl() { function logout_ctrl() {
unset($_SESSION); unset($_SESSION);
session_destroy(); session_destroy();
require('views/welcome_view.php'); require('views/welcome_view.php');
} }

View file

@ -1,49 +1,43 @@
<?php <?php
// On inclut le modèle qui contient les fonctions pour la base de données function modif_utilisateurs_form_ctrl() {
require_once('../models/modif_compte_model.php'); require('models/connection.php');
$c = connection();
require('models/modif_compte_model.php');
// On récupère tous les comptes pour afficher la liste à gauche $comptes = get_all_comptes($c);
$resultComptes = getAllComptes($conn);
// Variable pour stocker le compte sélectionné (null par défaut) $compte_select = null;
$compteSelectionne = null;
// Variable pour afficher un message de confirmation ou d'erreur
$message = "";
// --- CAS 1 : L'utilisateur a cliqué sur un nom dans la liste ---
// On vérifie si un ID est passé dans l'URL (ex: modif_compte_view.php?id=3)
if (isset($_GET['id'])) { if (isset($_GET['id'])) {
$id = $_GET['id']; $compte_select = get_compte_by_id($c, (int) $_GET['id']);
// On récupère les infos du compte correspondant à cet ID
$compteSelectionne = getCompteById($conn, $id);
} }
// --- CAS 2 : L'utilisateur a cliqué sur le bouton "Enregistrer" --- require('views/modif_compte_view.php');
// On vérifie si le formulaire a été envoyé (méthode POST) modif_compte_view($comptes, $compte_select);
if (isset($_POST['enregistrer'])) {
// On récupère les données saisies dans le formulaire
$id = $_POST['id'];
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
$role = $_POST['role'];
$departement = $_POST['departement'];
$numtel = $_POST['numtel'];
$login = $_POST['login'];
$passwd = $_POST['passwd'];
// On appelle la fonction du modèle pour mettre à jour la base de données
updateCompte($conn, $id, $nom, $prenom, $role, $departement, $numtel, $login, $passwd);
// On prépare un message de confirmation
$message = "Le compte a bien été modifié.";
// On recharge les infos du compte pour les réafficher dans le formulaire
$compteSelectionne = getCompteById($conn, $id);
} }
// On affiche la vue function modif_utilisateurs_write_ctrl() {
require_once('../views/modif_compte_view.php'); if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
?> header('Location: index.php?route=modif_utilisateurs_form');
exit;
}
$id = (int) $_POST['id'];
$nom = htmlentities($_POST['nom']);
$prenom = htmlentities($_POST['prenom']);
$role = htmlentities($_POST['role']);
$nomdep = htmlentities($_POST['nomdep']);
$num_tel = htmlentities($_POST['num_tel']);
$login = htmlentities($_POST['login']);
$passwd = $_POST['passwd'] ?? '';
require('models/connection.php');
$c = connection();
require('models/modif_compte_model.php');
update_compte($c, $id, $nom, $prenom, $role, $nomdep, $num_tel, $login, $passwd);
$_SESSION['notification'] = 'Compte modifié avec succès.';
header('Location: index.php?route=modif_utilisateurs_form&id=' . $id);
exit;
}

View file

@ -1,17 +1,14 @@
<?php <?php
error_reporting (E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 1);
function add_utilisateurs_form_ctrl() { function add_utilisateurs_form_ctrl() {
require('views/creation_compte_view.php'); require('views/creation_compte_view.php');
} }
function add_utilisateurs_write_ctrl() { function add_utilisateurs_write_ctrl() {
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
if ($_SERVER['REQUEST_METHOD'] == 'POST') { header('Location: index.php?route=add_utilisateurs_form');
exit;
}
$nom = $_POST['nom']; $nom = $_POST['nom'];
$prenom = $_POST['prenom']; $prenom = $_POST['prenom'];
@ -21,21 +18,20 @@ function add_utilisateurs_write_ctrl() {
$login = $_POST['login']; $login = $_POST['login'];
$mdp = $_POST['mdp']; $mdp = $_POST['mdp'];
if (!preg_match('/^[a-zA-Z0-9_-]+$/', $nom) || !preg_match('/^[a-zA-Z0-9_-]+$/', $login)) { if (!preg_match('/^[a-zA-Z0-9_-]+$/', $login)) {
$_SESSION['notification'] = 'Erreur : le login contient des caractères non autorisés.';
$_SESSION['notification'] = "<span style='color:red;'>Erreur : Le nom ou le login contient des caractère non autorisés.</span>";
require('views/creation_compte_view.php'); require('views/creation_compte_view.php');
return;
} else { }
$mdp_hache = password_hash($mdp, PASSWORD_DEFAULT); $mdp_hache = password_hash($mdp, PASSWORD_DEFAULT);
create_utilisateur_crud($nom, $prenom, $role, $nomdep, $num_tel, $login, $mdp_hache); require('models/connection.php');
$c = connection();
$_SESSION['notification'] = "Ajout du nouvel utilisateur réussi"; 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'); header('Location: index.php');
exit(); exit;
}
}
} }

View file

@ -80,6 +80,22 @@ article {
article h2 { color: #3b4a2e; margin-top: 0; } 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 */ /* TABLEAUX */
table { width: 100%; border-collapse: collapse; margin: 10px 0; } 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; } table th { background: #f8f6f0; color: #3b4a2e; padding: 10px; text-align: left; border-bottom: 2px solid #c49a3c; }

View file

@ -35,37 +35,13 @@
require('views/welcome_view.php'); require('views/welcome_view.php');
break; 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': case 'auth':
require('controllers/auth_ctrl.php'); require('controllers/auth_ctrl2.php');
login_ctrl(); login_ctrl();
break; break;
case 'logout': case 'logout':
require('controllers/auth_ctrl.php'); require('controllers/auth_ctrl2.php');
logout_ctrl(); logout_ctrl();
break; break;
@ -79,6 +55,15 @@
add_utilisateurs_write_ctrl(); add_utilisateurs_write_ctrl();
break; 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': case 'operations':
require('views/operations_view.php'); require('views/operations_view.php');

View file

@ -1,56 +1,44 @@
<?php <?php
// On inclut le fichier de connexion à la base de données // Récupère tous les comptes utilisateurs
require_once('../config/config.php'); function get_all_comptes(PDO $c): array {
$req = "SELECT ID, login, type, nom, prenom, nomdep, num_tel FROM Utilisateur ORDER BY nom, prenom";
// Fonction pour récupérer tous les comptes dans la table Utilisateur $res = $c->query($req);
// On joint avec Sauveteur pour avoir le nom et le prénom $comptes = $res->fetchAll(PDO::FETCH_ASSOC);
function getAllComptes($conn) { $res->closeCursor();
$sql = "SELECT Utilisateur.ID, Utilisateur.login, Utilisateur.type, return $comptes;
Sauveteur.nom, Sauveteur.prenom, Sauveteur.departement, Sauveteur.NumTel
FROM Utilisateur
JOIN Sauveteur ON Sauveteur.ID = Utilisateur.ID";
$result = mysqli_query($conn, $sql);
return $result;
} }
// Fonction pour récupérer un seul compte à partir de son ID // Récupère un compte par son ID
function getCompteById($conn, $id) { function get_compte_by_id(PDO $c, int $id): ?array {
$sql = "SELECT Utilisateur.ID, Utilisateur.login, Utilisateur.type, $req = "SELECT ID, login, type, nom, prenom, nomdep, num_tel FROM Utilisateur WHERE ID = :id";
Sauveteur.nom, Sauveteur.prenom, Sauveteur.departement, Sauveteur.NumTel $prep = $c->prepare($req);
FROM Utilisateur $prep->bindValue(':id', $id, PDO::PARAM_INT);
JOIN Sauveteur ON Sauveteur.ID = Utilisateur.ID $prep->execute();
WHERE Utilisateur.ID = $id"; $compte = $prep->fetch(PDO::FETCH_ASSOC);
$prep->closeCursor();
$result = mysqli_query($conn, $sql); return $compte ?: null;
// On retourne directement la ligne du résultat
return mysqli_fetch_assoc($result);
} }
// Fonction pour mettre à jour un compte dans la base de données // Met à jour un compte utilisateur
function updateCompte($conn, $id, $nom, $prenom, $role, $departement, $numtel, $login, $passwd) { 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) if (!empty($passwd)) {
$sql1 = "UPDATE Sauveteur $hash = password_hash($passwd, PASSWORD_DEFAULT);
SET nom = '$nom', prenom = '$prenom', departement = '$departement', NumTel = '$numtel' $req2 = "UPDATE Utilisateur SET passwd = :passwd WHERE ID = :id";
WHERE ID = $id"; $prep = $c->prepare($req2);
mysqli_query($conn, $sql1); $prep->bindValue(':passwd', $hash);
$prep->bindValue(':id', $id, PDO::PARAM_INT);
// Mise à jour de la table Utilisateur (login, type/rôle) $prep->execute();
$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);
} }
} }
?>

View file

@ -1,16 +1,11 @@
<?php <?php
function recuperation_auth(PDO $c, string $login): ?array {
function recuperation_auth(PDO $connex, int $id):array {
require('config/config.php');
$req = "SELECT login, passwd, type FROM Utilisateur WHERE login = :login"; $req = "SELECT login, passwd, type FROM Utilisateur WHERE login = :login";
$prep = $c->prepare($req);
$prep = $connex->prepare($req); $prep->bindValue(':login', $login);
$prep->bindValue(':id', $id);
$prep->execute(); $prep->execute();
$auth = $prep->fetch(PDO::FETCH_ASSOC); $auth = $prep->fetch(PDO::FETCH_ASSOC);
$prep->closeCursor(); $prep->closeCursor();
return $auth; return $auth ?: null;
} }

View file

@ -0,0 +1,15 @@
<?php
// Crée un nouvel utilisateur (tous les champs dans Utilisateur)
function create_utilisateur_crud(PDO $c, string $nom, string $prenom, string $role, string $nomdep, string $num_tel, string $login, string $mdp_hache): void {
$req = "INSERT INTO Utilisateur (login, passwd, type, nom, prenom, nomdep, num_tel) VALUES (:login, :passwd, :type, :nom, :prenom, :nomdep, :num_tel)";
$prep = $c->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();
}

View file

@ -1,15 +1,16 @@
<?php require('header.php')?> <?php require('views/header.php'); ?>
<h2>Ajouts de personnes </h2> <h2>Ajout de personnes</h2>
<form action="traite_formulaire.php" method="post"> <form action="index.php?route=add_personne" method="post">
<p>Nom : <input type="text" name="login" /></p> <p>Nom : <input type="text" name="nom" required></p>
<p>Prénom : <input type="text" name="login" /></p> <p>Prénom : <input type="text" name="prenom" required></p>
</form> <p>Département : <input type="text" name="dep" required></p>
<p>Département : <input type="text" name="dep" /></p>
<p>
<label for="spe">Spécialité :</label> <label for="spe">Spécialité :</label>
<select type="number" min="1" placeholder="spécialité" name="spe" > <select name="spe" id="spe">
<option value="1" selected="true">Evacuation </option> <option value="1" selected>Évacuation</option>
<option value="2">ASV (assistance victime)</option> <option value="2">ASV (assistance victime)</option>
<option value="3">Transmission</option> <option value="3">Transmission</option>
<option value="4">Conseiller technique (chef)</option> <option value="4">Conseiller technique (chef)</option>
@ -17,29 +18,33 @@
<option value="6">Désobstruction</option> <option value="6">Désobstruction</option>
<option value="7">Médical</option> <option value="7">Médical</option>
<option value="8">Ventilation</option> <option value="8">Ventilation</option>
<option value="9">Pas de spécialitées</option> <option value="9">Pas de spécialité</option>
</select> </select>
</form></p>
<p>
<label for="date">Date d'engagement sur l'opération de secours :</label>
<input type="date" title="titre" name="ladate" value="unedate" /></p>
<p>
<label for="heure">Heure d'engagement sur l'opération de secours :</label>
<input type="time" title="titre" name="lheure" value="14:00" />
</p> </p>
<form>
<label for="roles">Rôle :</label> <p>
<select type="number" min="1" placeholder="Rôle" name="role"> <label for="date">Date d'engagement :</label>
<option value="1" selected="true">Gestionnaire </option> <input type="date" id="date" name="date">
</p>
<p>
<label for="heure">Heure d'engagement :</label>
<input type="time" id="heure" name="heure" value="14:00">
</p>
<p>
<label for="role_pers">Rôle :</label>
<select name="role_pers" id="role_pers">
<option value="1" selected>Gestionnaire</option>
<option value="2">Lecteur</option> <option value="2">Lecteur</option>
<option value="3">Admin</option> <option value="3">Admin</option>
</select> </select>
</form>
</p> </p>
<input type="submit" value="Valider" />
<input type="reset" value="Annuler" />
<p>
<input type="submit" value="Valider">
<input type="reset" value="Annuler">
</p>
</form>
<?php require('views/footer.php'); ?>
<?php
require('footer.php');

View file

@ -1,13 +1,10 @@
<?php <?php require('views/header.php'); ?>
require('views/header.php');
?> <nav class="sub-nav">
<meta charset="UTF-8"> <a href="index.php?route=add_utilisateurs_form">Créer un compte</a>
<a href="index.php?route=modif_utilisateurs_form">Modifier un compte</a>
<nav>
<a id="CRERR_COMPTES" href="../creation_compte_view.php">CRER COMPTES</a>
<a id="MODIFIER_COMPTES" href="../modif_comptes_view.php">MODIFIER COMPTES</a>
</nav> </nav>
<h2>Ajout d'un nouveau compte</h2> <h2>Ajout d'un nouveau compte</h2>
<form action="index.php?route=add_utilisateurs" method="post"> <form action="index.php?route=add_utilisateurs" method="post">
<p> <p>
@ -18,14 +15,13 @@
Prénom : <input type="text" name="prenom" required> Prénom : <input type="text" name="prenom" required>
</p> </p>
<p> <p>
<label for="role">Choix du rôle :</label> <label for="role">Choix du rôle :</label>
<select name="role" id="role" required> <select name="role" id="role" required>
<option value="">-- Sélectionnez un profil --</option> <option value="">-- Sélectionnez un profil --</option>
<option value="GESTIONNAIRE">Gestionnaire</option> <option value="gestionnaire">Gestionnaire</option>
<option value="LECTURE">Lecture (Responsable)</option> <option value="lecture">Lecture</option>
<option value="ADMINISTRATION">Administration</option> <option value="administration">Administration</option>
</select> </select>
</p> </p>
@ -33,12 +29,10 @@
NOM DEP : <input type="text" name="nomdep" required> NOM DEP : <input type="text" name="nomdep" required>
</p> </p>
<p> <p>
n°tel : <input type="text" name=num_tel" required> n°tel : <input type="text" name="num_tel" required>
</p> </p>
<p> <p>
<label for="login">Login :</label> <label for="login">Login :</label>
<input type="text" id="login" name="login" required> <input type="text" id="login" name="login" required>
@ -52,8 +46,6 @@
<p> <p>
<input type="submit" value="Enregistrer"> <input type="submit" value="Enregistrer">
</p> </p>
</form> </form>
<?php require('views/footer.php'); ?>
<?php

View file

@ -1,21 +1,28 @@
<?php <?php
//session_start(); //session_start();
// --- NAVIGATION STATIQUE (auth commentée en attendant le système de connexion) --- // --- NAVIGATION (auth commentée en attendant le système de connexion) ---
$nav = '<li><a href="index.php">Accueil</a></li>'; $nav = '<li><a href="index.php">Accueil</a></li>';
$nav .= '<li><a href="index.php?route=operations">Opérations</a></li>';
$nav .= '<li><a href="index.php?route=add_utilisateurs_form">Créer un compte</a></li>';
$nav .= '<li><a href="index.php?route=modif_utilisateurs_form">Modifier un compte</a></li>';
// À DÉCOMMENTER quand auth_utilities.php sera chargé : // À DÉCOMMENTER quand l'auth sera fonctionnelle :
// if (is_logged()) {
// $nav .= '<li><a href="index.php?route=planning">Planning</a></li>'; // $nav .= '<li><a href="index.php?route=planning">Planning</a></li>';
// $nav .= '<li><a href="index.php?route=sauveteurs">Sauveteurs</a></li>'; // $nav .= '<li><a href="index.php?route=sauveteurs">Sauveteurs</a></li>';
// }
// if (has_role('gestionnaire') || has_role('administration')) {
// $nav .= '<li><a href="index.php?route=gestion">Gestion</a></li>'; // $nav .= '<li><a href="index.php?route=gestion">Gestion</a></li>';
// }
// if (has_role('administration')) {
// $nav .= '<li><a href="index.php?route=admin">Admin</a></li>'; // $nav .= '<li><a href="index.php?route=admin">Admin</a></li>';
// }
$nav .= '<li><a href="index.php?route=planning">Planning</a></li>'; // if (is_logged()) {
$nav .= '<li><a href="index.php?route=sauveteurs">Sauveteurs</a></li>'; // $nav .= '<li><a href="index.php?route=logout" class="nav-right">Déconnexion</a></li>';
$nav .= '<li><a href="index.php?route=gestion">Gestion</a></li>'; // } else {
$nav .= '<li><a href="index.php?route=admin">Admin</a></li>'; // $nav .= '<li><a href="index.php?route=auth" class="nav-right">Connexion</a></li>';
// }
$nav .= '<li><a href="index.php?route=auth" class="nav-right">Connexion</a></li>';
// $session = 'Connecté : ' . htmlentities($_SESSION['login']) . ' (' . ($_SESSION['role'] ?: 'lecture') . ')'; // $session = 'Connecté : ' . htmlentities($_SESSION['login']) . ' (' . ($_SESSION['role'] ?: 'lecture') . ')';
$session = 'Non connecté'; $session = 'Non connecté';

View file

@ -1,17 +1,15 @@
<?php <?php
#ceci est la partie "view" de la page de login, le header et le footer ne sont pour l'instant pas actif
error_reporting(E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED);
ini_set('display_errors', 1);
function login_form_view(?string $route) { function login_form_view(?string $route) {
#require('header.php'); require('views/header.php');
echo '<h2>Page d\'authentification</h2>'; echo '<h2>Page d\'authentification</h2>';
echo '<p>Merci de vous authentifier pour accéder à cette fonctionnalité.</p>';
echo '<form action="index.php?route=auth&ask=' . $route . '" method="post">'; echo '<form action="index.php?route=auth&ask=' . $route . '" method="post">';
echo '<p>Login<input type="text" name="login" /></p>'; echo '<p><label>Login :</label> <input type="text" name="login"></p>';
echo '<p>Mot de passe<input type="passwd" name="password" /></p>'; echo '<p><label>Mot de passe :</label> <input type="password" name="password"></p>';
echo '<p><input type="submit" value="Valider" /></form>'; echo '<p><input type="submit" value="Valider"></p>';
echo '</form>';
#require('footer.php'); require('views/footer.php');
} }

View file

@ -1,122 +1,88 @@
<?php <?php
// Ce fichier est la vue : il affiche uniquement le HTML
// Les données ($resultComptes, $compteSelectionne, $message) viennent du contrôleur
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Modification d'un compte</title>
</head>
<body>
<?php include('../views/header.php'); ?> function modif_compte_view(array $comptes, ?array $compte_select) {
require('views/header.php');
?>
<nav class="sub-nav">
<a href="index.php?route=add_utilisateurs_form">Créer un compte</a>
<a href="index.php?route=modif_utilisateurs_form">Modifier un compte</a>
</nav>
<h2>Modifier un compte existant</h2> <h2>Modifier un compte existant</h2>
<!-- Navigation entre les deux pages de gestion des comptes --> <table>
<nav>
<a href="../views/creation_compte_view.php">Créer un compte</a>
|
<a href="../controllers/modif_compte_ctrl.php">Modifier un compte</a>
</nav>
<table border="1">
<tr> <tr>
<!-- COLONNE GAUCHE : liste de tous les comptes --> <!-- COLONNE GAUCHE : liste des comptes -->
<td> <td style="width: 40%; vertical-align: top;">
<h3>Liste des comptes</h3> <h3>Liste des comptes</h3>
<ul> <ul>
<?php <?php foreach ($comptes as $cpte): ?>
// On parcourt tous les comptes récupérés dans la base
while ($compte = mysqli_fetch_assoc($resultComptes)) {
?>
<li> <li>
<!-- Un clic sur le nom envoie l'ID dans l'URL --> <a href="index.php?route=modif_utilisateurs_form&id=<?= $cpte['ID'] ?>">
<a href="modif_compte_ctrl.php?id=<?php echo $compte['ID']; ?>"> <?= htmlentities($cpte['nom'] . ' ' . $cpte['prenom']) ?> (<?= htmlentities($cpte['login']) ?>)
<?php echo $compte['nom'] . ' ' . $compte['prenom']; ?>
</a> </a>
</li> </li>
<?php } ?> <?php endforeach; ?>
<?php if (empty($comptes)): ?>
<li>Aucun compte trouvé.</li>
<?php endif; ?>
</ul> </ul>
</td> </td>
<!-- COLONNE DROITE : formulaire de modification --> <!-- COLONNE DROITE : formulaire de modification -->
<td> <td style="vertical-align: top;">
<h3>Modifier les informations</h3> <h3>Modifier les informations</h3>
<!-- Affichage du message de confirmation si une modification a été faite --> <?php if ($compte_select !== null): ?>
<?php if ($message != "") { ?> <form action="index.php?route=modif_utilisateurs" method="post">
<p><?php echo $message; ?></p> <input type="hidden" name="id" value="<?= $compte_select['ID'] ?>">
<?php } ?>
<?php
// On affiche le formulaire seulement si un compte a été sélectionné
if ($compteSelectionne != null) {
?>
<!-- Le formulaire envoie les données en POST vers le contrôleur -->
<form method="POST" action="../controllers/modif_compte_ctrl.php">
<!-- Champ caché pour transmettre l'ID du compte à modifier -->
<input type="hidden" name="id" value="<?php echo $compteSelectionne['ID']; ?>" />
<p> <p>
Nom : <label>Nom :</label>
<input type="text" name="nom" size="40" maxlength="100" <input type="text" name="nom" size="40" value="<?= htmlentities($compte_select['nom']) ?>">
value="<?php echo $compteSelectionne['nom']; ?>" />
</p> </p>
<p> <p>
Prénom : <label>Prénom :</label>
<input type="text" name="prenom" size="40" maxlength="100" <input type="text" name="prenom" size="40" value="<?= htmlentities($compte_select['prenom']) ?>">
value="<?php echo $compteSelectionne['prenom']; ?>" />
</p> </p>
<p> <p>
Rôle : <label>Rôle :</label>
<select name="role"> <select name="role">
<!-- On pré-sélectionne le rôle actuel du compte --> <option value="gestionnaire" <?= $compte_select['type'] === 'gestionnaire' ? 'selected' : '' ?>>Gestionnaire</option>
<option value="gestionnaire" <?php if ($compteSelectionne['type'] == 'gestionnaire') echo 'selected'; ?>>Gestionnaire</option> <option value="lecture" <?= $compte_select['type'] === 'lecture' ? 'selected' : '' ?>>Lecture</option>
<option value="lecture" <?php if ($compteSelectionne['type'] == 'lecture') echo 'selected'; ?>>Lecture</option> <option value="administration" <?= $compte_select['type'] === 'administration' ? 'selected' : '' ?>>Administration</option>
<option value="administration" <?php if ($compteSelectionne['type'] == 'administration') echo 'selected'; ?>>Administration</option>
</select> </select>
</p> </p>
<p> <p>
Département : <label>Département :</label>
<input type="text" name="departement" size="10" maxlength="10" <input type="text" name="nomdep" size="10" value="<?= htmlentities($compte_select['nomdep']) ?>">
value="<?php echo $compteSelectionne['departement']; ?>" />
</p> </p>
<p> <p>
Numéro de téléphone : <label> téléphone :</label>
<input type="text" name="numtel" size="20" maxlength="20" <input type="text" name="num_tel" size="20" value="<?= htmlentities($compte_select['num_tel']) ?>">
value="<?php echo $compteSelectionne['NumTel']; ?>" />
</p> </p>
<p> <p>
Login : <label>Login :</label>
<input type="text" name="login" size="40" maxlength="50" <input type="text" name="login" size="40" value="<?= htmlentities($compte_select['login']) ?>">
value="<?php echo $compteSelectionne['login']; ?>" />
</p> </p>
<p> <p>
Nouveau mot de passe : <label>Nouveau mot de passe :</label>
<!-- Champ vide : si on ne remplit pas, le mot de passe reste inchangé --> <input type="password" name="passwd" size="40" placeholder="Laisser vide pour ne pas modifier">
<input type="password" name="passwd" size="40" maxlength="255"
placeholder="Laisser vide pour ne pas modifier" />
</p> </p>
<p> <p>
<input type="submit" name="enregistrer" value="Enregistrer" /> <input type="submit" value="Enregistrer les modifications">
</p> </p>
</form> </form>
<?php else: ?>
<?php } else { ?>
<p>Cliquez sur un compte dans la liste pour le modifier.</p> <p>Cliquez sur un compte dans la liste pour le modifier.</p>
<?php } ?> <?php endif; ?>
</td> </td>
</tr> </tr>
</table> </table>
<?php include('../views/footer.php'); ?> <?php
require('views/footer.php');
</body> }
</html>