ajout fichiers modification comptes
This commit is contained in:
parent
cf97e02c21
commit
fb10c37323
3 changed files with 207 additions and 22 deletions
49
controllers/modif_compte_ctrl.php
Normal file
49
controllers/modif_compte_ctrl.php
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// On inclut le modèle qui contient les fonctions pour la base de données
|
||||||
|
require_once('../models/modif_compte_model.php');
|
||||||
|
|
||||||
|
// On récupère tous les comptes pour afficher la liste à gauche
|
||||||
|
$resultComptes = getAllComptes($conn);
|
||||||
|
|
||||||
|
// Variable pour stocker le compte sélectionné (null par défaut)
|
||||||
|
$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'])) {
|
||||||
|
$id = $_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" ---
|
||||||
|
// On vérifie si le formulaire a été envoyé (méthode POST)
|
||||||
|
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
|
||||||
|
require_once('../views/modif_compte_view.php');
|
||||||
|
?>
|
||||||
56
models/modif_compte_model.php
Normal file
56
models/modif_compte_model.php
Normal file
|
|
@ -0,0 +1,56 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
// On inclut le fichier de connexion à la base de données
|
||||||
|
require_once('../config/config.php');
|
||||||
|
|
||||||
|
// Fonction pour récupérer tous les comptes dans la table Utilisateur
|
||||||
|
// On joint avec Sauveteur pour avoir le nom et le prénom
|
||||||
|
function getAllComptes($conn) {
|
||||||
|
$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";
|
||||||
|
|
||||||
|
$result = mysqli_query($conn, $sql);
|
||||||
|
return $result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fonction pour mettre à jour un compte dans la base de données
|
||||||
|
function updateCompte($conn, $id, $nom, $prenom, $role, $departement, $numtel, $login, $passwd) {
|
||||||
|
|
||||||
|
// 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
?>
|
||||||
|
|
@ -1,42 +1,122 @@
|
||||||
<?php
|
<?php
|
||||||
|
// Ce fichier est la vue : il affiche uniquement le HTML
|
||||||
|
// Les données ($resultComptes, $compteSelectionne, $message) viennent du contrôleur
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8" />
|
<meta charset="utf-8" />
|
||||||
<title>page de modification du compte</title>
|
<title>Modification d'un compte</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<header>
|
|
||||||
|
<?php include('../views/header.php'); ?>
|
||||||
|
|
||||||
<h2>Modifier un compte existant</h2>
|
<h2>Modifier un compte existant</h2>
|
||||||
|
|
||||||
|
<!-- Navigation entre les deux pages de gestion des comptes -->
|
||||||
<nav>
|
<nav>
|
||||||
<a href="../index.html"><img src="../images/idea.png" alt="Retour vers la page d'accueil" /></a>
|
<a href="../views/creation_compte_view.php">Créer un compte</a>
|
||||||
<a href="../view/crea_compte_view.html"><img src="../images/crea_compte.png" alt="Aller à la page de création du compte" /></a>
|
|
|
||||||
|
<a href="../controllers/modif_compte_ctrl.php">Modifier un compte</a>
|
||||||
</nav>
|
</nav>
|
||||||
</header>
|
|
||||||
<table>
|
<table border="1">
|
||||||
<tr>
|
<tr>
|
||||||
|
|
||||||
|
<!-- COLONNE GAUCHE : liste de tous les comptes -->
|
||||||
<td>
|
<td>
|
||||||
|
<h3>Liste des comptes</h3>
|
||||||
<ul>
|
<ul>
|
||||||
<li><p>test1</p></li>
|
<?php
|
||||||
<li><p>test2</p></li>
|
// On parcourt tous les comptes récupérés dans la base
|
||||||
<li><p>test3</p></li>
|
while ($compte = mysqli_fetch_assoc($resultComptes)) {
|
||||||
<li><p>test4</p></li>
|
?>
|
||||||
|
<li>
|
||||||
|
<!-- Un clic sur le nom envoie l'ID dans l'URL -->
|
||||||
|
<a href="modif_compte_ctrl.php?id=<?php echo $compte['ID']; ?>">
|
||||||
|
<?php echo $compte['nom'] . ' ' . $compte['prenom']; ?>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<?php } ?>
|
||||||
</ul>
|
</ul>
|
||||||
</td>
|
</td>
|
||||||
|
|
||||||
|
<!-- COLONNE DROITE : formulaire de modification -->
|
||||||
<td>
|
<td>
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="nom du sauveteur" /></p>
|
<h3>Modifier les informations</h3>
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="prenom du sauveteur" /></p>
|
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="role du sauveteur" /></p>
|
<!-- Affichage du message de confirmation si une modification a été faite -->
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="département du sauveteur" /></p>
|
<?php if ($message != "") { ?>
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="numéro de tel du sauveteur" /></p>
|
<p><?php echo $message; ?></p>
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="login" /></p>
|
<?php } ?>
|
||||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="mot de passe" /></p>
|
|
||||||
<p><input type="submit" value="Enregistrer" /></p>
|
<?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>
|
||||||
|
Nom :
|
||||||
|
<input type="text" name="nom" size="40" maxlength="100"
|
||||||
|
value="<?php echo $compteSelectionne['nom']; ?>" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Prénom :
|
||||||
|
<input type="text" name="prenom" size="40" maxlength="100"
|
||||||
|
value="<?php echo $compteSelectionne['prenom']; ?>" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Rôle :
|
||||||
|
<select name="role">
|
||||||
|
<!-- On pré-sélectionne le rôle actuel du compte -->
|
||||||
|
<option value="gestionnaire" <?php if ($compteSelectionne['type'] == 'gestionnaire') echo 'selected'; ?>>Gestionnaire</option>
|
||||||
|
<option value="lecture" <?php if ($compteSelectionne['type'] == 'lecture') echo 'selected'; ?>>Lecture</option>
|
||||||
|
<option value="administration" <?php if ($compteSelectionne['type'] == 'administration') echo 'selected'; ?>>Administration</option>
|
||||||
|
</select>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Département :
|
||||||
|
<input type="text" name="departement" size="10" maxlength="10"
|
||||||
|
value="<?php echo $compteSelectionne['departement']; ?>" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Numéro de téléphone :
|
||||||
|
<input type="text" name="numtel" size="20" maxlength="20"
|
||||||
|
value="<?php echo $compteSelectionne['NumTel']; ?>" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Login :
|
||||||
|
<input type="text" name="login" size="40" maxlength="50"
|
||||||
|
value="<?php echo $compteSelectionne['login']; ?>" />
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Nouveau mot de passe :
|
||||||
|
<!-- Champ vide : si on ne remplit pas, le mot de passe reste inchangé -->
|
||||||
|
<input type="password" name="passwd" size="40" maxlength="255"
|
||||||
|
placeholder="Laisser vide pour ne pas modifier" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
<input type="submit" name="enregistrer" value="Enregistrer" />
|
||||||
|
</p>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<?php } else { ?>
|
||||||
|
<p>Cliquez sur un compte dans la liste pour le modifier.</p>
|
||||||
|
<?php } ?>
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
|
<?php include('../views/footer.php'); ?>
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
Loading…
Add table
Reference in a new issue