Editer le profile
Christiana974
-
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 38486 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour, je n'arrive pas à modifier le profil où on se connecte. Par exemple lorsque je me connecte avec un compte A, et je me dirige vers modifier le profile, il affiche les donées du compte B/ de l'user le plus récent
Voici le code pour créer, se connecter, modifier un utilisateur model.php :
Et editProfile.php :
Voici le code pour créer, se connecter, modifier un utilisateur model.php :
<?php class model{ private $server = "localhost"; private $username = "root"; private $password = ""; private $db = "formation_db"; private $conn; public function __construct() { try { $this->conn = new mysqli( $this->server, $this->username, $this->password, $this->db ); } catch(Exception $e) { echo "Erreur de connexion" . $e->getMessage(); } } function connexionUser(){ session_start(); if(isset($_POST['email']) && isset($_POST['userPassword'])) { $email = $_POST['email']; $userPassword = $_POST['userPassword']; if(empty($email)){ header("Location: index.php?error=Email requis"); exit(); } else if(empty($userPassword)) { header("Location: index.php?error=Mot de passe requis"); exit(); } else { $query = "SELECT * FROM users WHERE email = '$email' AND userPassword = '$userPassword'"; $sql = $this->conn->query($query); if(mysqli_num_rows($sql) === 1) { $row = mysqli_fetch_assoc($sql); if($row['email'] === $email && $row['userPassword'] === $userPassword) { // SI l'admin se connecte if($row['adminRole'] == 1) { header("Location: admin/index_admin.php"); exit(); }else{ header("Location: demandeur/index_demandeur.php"); exit(); } $_SESSION['email'] = $row['email']; $_SESSION['nom'] = $row['nom']; $_SESSION['prenom'] = $row['prenom']; $_SESSION['userService'] = $row['userService']; $_SESSION['userFonction'] = $row['userFonction']; $_SESSION['userID'] = $row['userID']; exit(); } else { header("Location: index.php?error=Email ou mot de passe incorrect."); exit(); } } else { header("Location: index.php?error=Email ou mot de passe incorrect."); exit(); } } } if(isset($_POST['adminRole']) && $_POST['adminRole'] == 1) { header('Location: index_admin.php'); } } function registerUser(){ session_start(); if(isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['userService']) && isset($_POST['userFonction']) && isset($_POST['adminRole']) && isset($_POST['userPassword'])){ $nom = $_POST['nom']; $prenom = $_POST['prenom']; $email = $_POST['email']; $userService = $_POST['userService']; $userFonction = $_POST['userFonction']; $adminRole = $_POST['adminRole']; $userPassword = $_POST['userPassword']; if(empty($nom)) { echo("Nom requis"); exit(); } else if(empty($email)) { echo("Adresse mail requis"); exit(); } else if(empty($userPassword)) { echo("Mot de passe requis"); exit(); } else { $verifyQuery = "SELECT * FROM users WHERE email = '$email'"; $sql = $this->conn->query($verifyQuery); if(mysqli_num_rows($sql) === 1) { $row = mysqli_fetch_assoc($sql); if($row['email'] === $email) { echo "<div class='card w-25 text-danger' style='padding:20px; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-exclamation-triangle'></i> <b>L'adresse mail ". $_POST['email']. " </q> a déjà été utilisé</b></h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; exit(); } else { $insertQuery = "INSERT INTO users (nom, prenom, email, userService, userFonction, adminRole, userPassword) VALUES ('$nom','$prenom', '$email','$userService','$userFonction','$adminRole', '$userPassword')"; if($sql = $this->conn->query($insertQuery)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b><q>". $_POST['nom']. " ". $_POST['prennom']. "</q> a été ajouté</b></h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div> <br><br>"; } else { echo "err"; } } } else { $insertQuery = "INSERT INTO users (nom, prenom, email, userService, userFonction, adminRole, userPassword) VALUES ('$nom','$prenom', '$email','$userService','$userFonction','$adminRole', '$userPassword')"; if($sql = $this->conn->query($insertQuery)) { echo "<div class='card w-25' style='padding:20px;color: #45509E; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b> <q>". $_POST['nom']. " ". $_POST['prenom']. " </q> a été ajouté</b></h5> <a href='../admin/index_admin.php' style='color:grey;text-align:center'>Retour vers la page d'accueil</a> </div>"; }else { echo "err"; } } } } } function edit(){ $data = null; $query = "SELECT userID, nom, prenom, email, userService, userFonction FROM users WHERE userID = " . $_SESSION['userID']; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)) { $data = $row; } } return $data; } function update($data) { $query = "UPDATE users SET nom = '$data[nom]' , prenom = '$data[prenom]' , email = '$data[email]' , userService = '$data[userService]' , userFonction = '$data[userFonction]' , userPassword = '$data[userPassword]' WHERE userID = '$data[userID]'"; if($sql = $this->conn->query($query)) { echo "<br><br><div class='card w-25 text-warning' style='padding:20px; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-check-circle'></i> <b> Vos informations ont bien été modifié</b></h5> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center'>Retour vers la page d'accueil pour rafraichir</a> </div>"; } else { echo "<br><br> <div class='card w-25 text-danger' style='padding:20px; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-exclamation-triangle'></i> <b>Vos données n'ont pas pu être modifiées</b></h5> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center'>Retour </a> </div>"; } } function viewProfile(){ $data = null; $query = "SELECT * FROM users WHERE userID = " . $_SESSION['userID']; if($sql = $this->conn->query($query)) { while($row = mysqli_fetch_assoc($sql)){ $data = $row; } } return $data; } } ?>
Et ce code qui permet d'aller vers la page de modif depuis la barre de nav : <?php session_start(); include '../model/model.php'; $model = new model; $row = $model->viewProfile(); ?> <a style="text-decoration:none;color:white" href="../demandeur/editProfile.php?editUser=<?php echo $row['userID'];?>" class="header__navbar--menu-link">Mon compte</a>
Et editProfile.php :
<?php include '../demandeur/header_demandeur.php'; $model = new model; $id = $_REQUEST['editUser']; $row = $model->edit(); if(isset($_POST['update'])) { if(isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['userService']) && isset($_POST['userFonction']) && isset($_POST['userPassword'])) { $data['nom'] = $_POST['nom']; $data['prenom'] = $_POST['prenom']; $data['userService'] = $_POST['userService']; $data['userFonction'] = $_POST['userFonction']; $data['email'] = $_POST['email']; $data['userPassword'] = $_POST['userPassword']; $update = $model->update($data); } else { echo "<br><br> <div class='card w-25 text-danger' style='padding:20px; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-exclamation-triangle'></i> <b>Vos données n'ont pas pu être modifiées</b></h5> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center'>Retour </a> </div>"; } } ?> <?php if(!empty($row)) { ?> <div class="container-fluid"> <h1 class="text-warning" style="text-align: center;margin-top:50px">Mon compte</h1> <div class="card" style="margin-top:50px;margin-bottom:50px; width:500px;margin-left:auto;margin-right:auto"> <h3 style="text-align:center;margin-top:30px">Mes informations personnelles</h3> <div class="card-body" style="margin-top:20px"> <form action="" method="post"> <div class="row"> <div class="col"> <div class="form-floating mb-3"> <input name="nom" type="text" class="form-control" id="floatingInput" required value="<?php echo $row['nom'];?>"> <label for="floatingInput">Nom</label> </div> </div> <div class="col"> <div class="form-floating mb-3"> <input name="prenom" type="text" class="form-control" id="floatingInput" required value="<?php echo $row['prenom'];?>"> <label for="floatingInput">Prénom</label> </div> </div> </div> <div class="form-floating mb-3"> <input name="email" type="email" class="form-control" id="floatingInput" required value="<?php echo $row['email'];?>"> <label for="floatingInput">Adresse mail</label> </div> <div class="form-floating mb-3"> <input name="userService" type="text" class="form-control" id="floatingInput" required value="<?php echo $row['userService'];?>"> <label for="floatingInput">Service/Lieu</label> </div> <div class="form-floating mb-3"> <input name="userFonction" type="text" class="form-control" id="floatingInput" required value="<?php echo $row['userFonction'];?>"> <label for="floatingInput">Fonction</label> </div> <div class="form-floating mb-3"> <input name="userPassword" type="password" class="form-control" id="floatingInput" required> <label for="floatingInput">Mot de passe</label> </div> <button type="submit" name="update" class="btn btn-warning" onclick="return confirm('Voulez-vous mettre à jour vos donées?')" style="color:white">Modifier</button> </form> </div> </div> </div> </div> <?php } ?>
A voir également:
- Editer le profile
- Mon profile - Guide
- Voir le profil facebook de quelqu'un qui nous a bloqué - Guide
- Editer un pdf - Guide
- Photo de profile whatsapp - Accueil - WhatsApp
- Rechercher un profil sur le bon coin - Forum Vos droits sur internet
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
la première chose à faire, je pense, est d'ajouter
la première chose à faire, je pense, est d'ajouter
session_start();au début de la page
editProfile.php.
Bonjour,
Pour accéder à la page d'édition tu passes par un lien
lien qui contient l'id du user à éditer dans la variable $_GET['editUser']
Sauf que, dans ton code ... tu vas chercher l'utilisateur en fonction de la variable que tu as mis en SESSION
Pour accéder à la page d'édition tu passes par un lien
<a style="text-decoration:none;color:white" href="../demandeur/editProfile.php?editUser=<?php echo $row['userID'];?>"
lien qui contient l'id du user à éditer dans la variable $_GET['editUser']
Sauf que, dans ton code ... tu vas chercher l'utilisateur en fonction de la variable que tu as mis en SESSION
Comme ceci? editProfile.php :
<?php include '../demandeur/header_demandeur.php'; $model = new model; $id = $_GET['editUser']; $row = $model->edit($id); if(isset($_POST['update'])) { if(isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['email']) && isset($_POST['userService']) && isset($_POST['userFonction']) && isset($_POST['userPassword'])) { $data['nom'] = $_POST['nom']; $data['prenom'] = $_POST['prenom']; $data['userService'] = $_POST['userService']; $data['userFonction'] = $_POST['userFonction']; $data['email'] = $_POST['email']; $data['userPassword'] = $_POST['userPassword']; $update = $model->update($data, $id); } else { echo "<br><br> <div class='card w-25 text-danger' style='padding:20px; margin:auto;'> <h5 style='text-align:center'> <i class='fas fa-exclamation-triangle'></i> <b>Vos données n'ont pas pu être modifiées</b></h5> <a href='../demandeur/index_demandeur.php' style='color:grey;text-align:center'>Retour </a> </div>"; } } ?>
Nous as-tu montré la page header_demandeur.php?
Merci d'indiquer le nom de chaque page dont tu nous montres le contenu.
Voici le message d'erreur :
Notice: session_start(): A session had already been started - ignoring in D:\wamp\wamp64\www\Projet formation\demandeur\header_demandeur.php on line 2