Editer le profile
Christiana974
-
jordane45 Messages postés 40050 Statut Modérateur -
jordane45 Messages postés 40050 Statut Modérateur -
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
- Oem application profile - Forum Windows 8 / 8.1
- Editer un pdf - Guide
- Photo de profile whatsapp - Accueil - WhatsApp
- Voir le profil facebook de quelqu'un qui nous a bloqué - Guide
- Carte graphique low profile ✓ - Forum Carte graphique
3 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
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.
<?php session_start(); include '../model/model.php'; $model = new model; $row = $model->viewProfile(); ?> <html lang="fr"> <head> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Form&nou - Navigation</title> <!-- CSS only --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We" crossorigin="anonymous"> <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> <link href='https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css'> <script src='https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.bundle.min.js'></script> <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js'></script> <script src="https://kit.fontawesome.com/6c1ecc43dd.js" crossorigin="anonymous"></script> <link rel="stylesheet" href="../Public/css/style.css"> <link rel="stylesheet" href="../Public/css/style_admin.css"> <link rel="stylesheet" href="../Public/css/header.css"> <link rel="preconnect" href="https://fonts.googleapis.com"> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> <link href="https://fonts.googleapis.com/css2?family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Roboto:300,400&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css?family=Poppins:300,400,500&display=swap" rel="stylesheet"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script> <script src="https://cdn.jsdelivr.net/momentjs/2.14.1/moment.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"> <link rel="stylesheet" href="../fonts/icomoon/style.css"> <link rel="stylesheet" href="../Public/css/rome.css"> <link rel="shortcut icon" type="image/png" href="../Public/img/bg.png"/> <script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/js/bootstrap-datetimepicker.min.js"></script> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.37/css/bootstrap-datetimepicker.min.css"> </head> <!-- Header --> <div class="header__otherpage"> <div class="header__texture"></div> <div class="container__1"> <div class="header__navbar"> <div class="header__navbar--logo"> <a style="text-decoration:none" href="../demandeur/apropos_demandeur.php" class="header__navbar--logo-title">Form&Nou</a> </div> <div class="header__navbar--menu"> <a style="text-decoration:none;color:white" href="../demandeur/index_demandeur.php" class="header__navbar--menu-link"><i class="fas fa-home"></i> Accueil</a> <a style="text-decoration:none;color:white" href="../demandeur/seFormer.php" class="header__navbar--menu-link">Se Former</a> <a style="text-decoration:none;color:white" href="../demandeur/contact.php" class="header__navbar--menu-link">Contact</a> <a style="text-decoration:none;color:white" href="../demandeur/editProfile.php?editUser=<?php echo $row[0]['userID'];?>" class="header__navbar--menu-link">Mon compte</a> <a style="text-decoration:none;color:white" href="../logout.php" class="header__navbar--menu-link">Déconnexion</a> </div> <div class="header__navbar-toggle"> <span class="header__navbar-toggle-icons"></span> </div> </div> </div> </div> </html>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