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
|
||||
|
||||
// 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>page de modification du compte</title>
|
||||
<meta charset="utf-8" />
|
||||
<title>Modification d'un compte</title>
|
||||
</head>
|
||||
<body>
|
||||
<header>
|
||||
|
||||
<?php include('../views/header.php'); ?>
|
||||
|
||||
<h2>Modifier un compte existant</h2>
|
||||
|
||||
<!-- Navigation entre les deux pages de gestion des comptes -->
|
||||
<nav>
|
||||
<a href="../index.html"><img src="../images/idea.png" alt="Retour vers la page d'accueil" /></a>
|
||||
<a href="../view/crea_compte_view.html"><img src="../images/crea_compte.png" alt="Aller à la page de création du compte" /></a>
|
||||
</nav>
|
||||
</header>
|
||||
<table>
|
||||
<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>
|
||||
|
||||
<!-- COLONNE GAUCHE : liste de tous les comptes -->
|
||||
<td>
|
||||
<h3>Liste des comptes</h3>
|
||||
<ul>
|
||||
<li><p>test1</p></li>
|
||||
<li><p>test2</p></li>
|
||||
<li><p>test3</p></li>
|
||||
<li><p>test4</p></li>
|
||||
<?php
|
||||
// On parcourt tous les comptes récupérés dans la base
|
||||
while ($compte = mysqli_fetch_assoc($resultComptes)) {
|
||||
?>
|
||||
<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>
|
||||
</td>
|
||||
|
||||
<!-- COLONNE DROITE : formulaire de modification -->
|
||||
<td>
|
||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="nom du sauveteur" /></p>
|
||||
<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>
|
||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="département du sauveteur" /></p>
|
||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="numéro de tel du sauveteur" /></p>
|
||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="login" /></p>
|
||||
<p><input type="text" size="100" maxlength="100" name="name" placeholder="mot de passe" /></p>
|
||||
<p><input type="submit" value="Enregistrer" /></p>
|
||||
<h3>Modifier les informations</h3>
|
||||
|
||||
<!-- Affichage du message de confirmation si une modification a été faite -->
|
||||
<?php if ($message != "") { ?>
|
||||
<p><?php echo $message; ?></p>
|
||||
<?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>
|
||||
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>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<?php include('../views/footer.php'); ?>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue