Problème de d'affichage de variable de SESSION
Résolu
xooit21
Messages postés
99
Date d'inscription
Statut
Membre
Dernière intervention
-
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
yg_be Messages postés 23541 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, Je crée actuellement un site web, le problème est que quand je modifie l'adresse email via la page "modifier le profil" la modification ce fait bien dans ma BDD mais sur la page profil de l'utilisateur ça ne change pas, et je ne trouve pas pourquoi.
Page profil de l'utilisateur:
Page "Modifier le profil:
Page profil de l'utilisateur:
<?php session_start(); $bdd = new PDO('mysql:localhost=127.0.0.1;dbname=ready-to-run','root',''); if (isset($_SESSION['id'])) { ?> <!doctype html> <html lang="fr"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> <link rel="stylesheet" href="style.css"> <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body> <!--Menu--> <?php include('Menu_connect.php'); ?> <!-- Fin sous Menu--> <!--Banner--> <!------ Include the above in your HEAD tag ----------> <body> <div id="login"><br> <div class="container-fluid"style="text-align: center;"> <div id="login-row" class="row justify-content-center align-items-center"> <div id="login-column" class="col-md-6"> <div id="login-box-1" class="col-md-12"> <form id="login-form" class="form" action="" method="post"> <h3 class="text-center text-info">Mon profil</h3><br><br> <div class="form-group"> <label for="username" class="text-info">Pseudo: <?php echo $_SESSION['pseudo'];?></label><br> </div> <div class="form-group"> <label for="password" class="text-info">Mot de passe: *********</label><br> </div> <div class="form-group"> <label for="remember-me" class="text-info">Mail <?php echo $_SESSION['mail'];?></label><br><br> <a href="profil_edit_connect.php?id=<?php echo $_SESSION['id'];?>" class="btn btn-primary m-2 mt-4">Modifier mon profil</a> <a href="index_connect.php?id=<?php echo $_SESSION['id'];?>" class="btn btn-primary m-2 mt-4">Retour</a> <?php if(isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } ?> </div> </form> </div> </div> </div> </div> </div> </body> </section> <!--Fin Banner--> <!--debut présentation--> <!--Fin présentation--> <!--footer--> <?php include('footer.php'); ?> <!--fin footer--> <!-- Optional JavaScript; choose one of the two! --> <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script> </body> </html> <?php } ?>
Page "Modifier le profil:
<?php session_start(); if (isset($_SESSION['id'])) { # code... ?> <!doctype html> <html lang="fr"> <head> <!-- Required meta tags --> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> <!-- Bootstrap CSS --> <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous"> <link rel="stylesheet" href="style.css"> <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css"> <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script> </head> <body> <!--Menu--> <?php include('Menu_connect.php'); ?> <!-- Fin sous Menu--> <?php ini_set('display_errors', 1); $bdd = new PDO('mysql:localhost=127.0.0.1;dbname=ready-to-run','root',''); if (isset($_POST['Modifier'])) { /*---Selectionner l'utilisateur dans la BDD---*/ $requser = $bdd->prepare("SELECT * FROM espace_membre WHERE id = ?"); $requser->execute(array($_SESSION['id'])); $user = $requser->fetch(); if (isset($_POST['news_mail']) AND !empty($_POST['news_mail']) AND $_POST['news_mail'] != $user['mail']) { $newsmail = htmlspecialchars($_POST['news_mail']); $insertmail = $bdd->prepare("UPDATE espace_membre SET mail = ? WHERE id = ?"); $insertmail->execute(array($newsmail, $_SESSION['id'])); header('location: profil_connect.php?id='. $_SESSION['id']); } if (isset($_POST['news_motDePasse']) AND !empty($_POST['news_motDePasse'])AND isset($_POST['news_motDePasse_Confim']) AND !empty($_POST['news_motDePasse_Confim'])) { $mdp1 = sha1($_POST['news_motDePasse']); $mdp2 = sha1($_POST['news_motDePasse_Confim']); if ($mdp1 == $mdp2) { $insertmdp = $bdd->prepare("UPDATE espace_membre SET mot_de_passe = ? WHERE id = ?"); $insertmdp->execute(array($mdp1, $_SESSION['id'])); header('location: profil_connect.php?id='.$_SESSION['id']); } else { $msg = "Vos mot de passe ne corespondent pas!"; } } if (isset($_FILES['avatar']) AND !empty($_FILES['avatar']['name'])) { $tailleMax = 2097152; $extensionValides = array('jpg', 'jpeg', 'png','gif'); if ($_FILES['avatar']['size'] <= $tailleMax) { $extensionUpload = strtolower(substr(strrchr($_FILES['avatar']['name'], '.'), 1)); if (in_array($extensionUpload, $extensionValides)) { $chemin = "avatar".$_SESSION['id'].".".$extensionUpload; $resultat = move_uploaded_file($_FILES['avatar']['tmp_name'], $chemin); if ($resultat) { $updateavatar = $bdd->prepare('UPDATE espace_membre SET avatar = :avatar WHERE id = :id'); $updateavatar->execute(array('avatar' => $_SESSION['id'].".".$extensionUpload,'id'=> $_SESSION['id'])); header('location: profil_connect.php?id='.$_SESSION['id']); } else { $msg = "ERREUR Votre fichier n'a pas ete chargé!!!"; } } else { $msg = "Votre image de profil doit étre au fomat jpg, jpeg,gif ou png!!!"; } } else { $msg = "Votre photos de profil ne doit pas depassé 2 Mo"; } } } ?> <!--Banner--> <!------ Include the above in your HEAD tag ----------> <body> <div id="login"><br> <div class="container-fluid"style="text-align: center;"> <div id="login-row" class="row justify-content-center align-items-center"> <div id="login-column" class="col-md-6"> <div id="login-box-1" class="col-md-12"> <form id="login-form" class="form" action="" method="POST"> <h3 class="text-center text-info">Editer mon profil</h3><br><br> <div class="form-group"> <label style="float: left; color:#08ABD5">Nouvelle email :</label> <input type="mail" name="news_mail" class="form-control" placeholder="Entrez votre nouvelle email:"> </div> <div class="form-group"> <label style="float: left; color:#08ABD5">Nouveau mot de passe :</label> <input type="password" name="news_motDePasse"class="form-control" placeholder="Entrez votre nouveau mot de passe:"> </div> <div class="form-group"> <label style="float: left; color:#08ABD5"> Confirmer votre nouveau mot de passe :</label> <input type="password" name="news_motDePasse_Confim"class="form-control" placeholder="Confirmez votre nouveau mot de passe:"> </div><br> <div class="form-group"> <label style="float: left; color:#08ABD5"> Votre avatar:</label> <input type="file" name="avatar"class="form-control"> </div><br> <div class="form-group"> <input type="submit" name="Modifier" class="btn btn-info btn-md" value="Valider"> <?php if(isset($erreur)) { echo '<font color="red">'.$erreur."</font>"; } if(isset($Valide_modif)) { echo '<font color="green">'.$Valide_modif."</font>"; } if (isset($redirec)) { echo '<font color="red">'.$redirec."</font>"; } ?> </div> </form> </div> </div> </div> </div> </div> </body> </section> <!--Fin Banner--> <!--debut présentation--> <!--Fin présentation--> <!--footer--> <?php include('footer.php'); ?> <!--fin footer--> <!-- Optional JavaScript; choose one of the two! --> <!-- Option 1: jQuery and Bootstrap Bundle (includes Popper) --> <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-Piv4xVNRyMGpqkS2by6br4gNJ7DXjqk09RmUpJ8jgGtD7zP9yug3goQfGII0yAns" crossorigin="anonymous"></script> </body> </html> <?php } ?>
Configuration: Windows / Chrome 88.0.4324.182
A voir également:
- Problème de d'affichage de variable de SESSION
- Affichage double ecran - Guide
- Problème affichage page internet google chrome ✓ - Forum Google Chrome
- Problème affichage fenêtre windows 10 - Guide
- Www.yahoomail.com ouverture de session - Forum Yahoo mail
- Windows 11 affichage classique - Guide
1 réponse
Bonjour,
Comme déjà dit dans une de tes précédentes questions...
Ensuite, en ce qui concerne ton souci :
Je ne vois pas, dans le code que tu nous montres, l'endroit où tu mets à jour les variables de session.... il semble donc normal qu'elles ne soient pas modifiées ...
.
Comme déjà dit dans une de tes précédentes questions...
Avant toutes choses, commence par gérer les éventuelles erreurs PDO.
Pour cela, lit et applique le contenu de ce lien : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
=> activer les erreurs dans la connexion PDO
=> Placer CHAQUE requête dans un bloc try/catch
Ensuite, mets en pratiques les consignes données ici :
https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
=> Activer les erreurs PHP
=> Récupérer proprement les variables AVANT de les utiliser
Sache également qu'on n'utilise plus le SHA1 pour gérer les mots de passe ( pas assez sécurisé ) mais qu'à la place on utilise : https://www.php.net/manual/fr/function.password-hash.php
Ensuite, en ce qui concerne ton souci :
la modification ce fait bien dans ma BDD mais sur la page profil de l'utilisateur ça ne change pas
Je ne vois pas, dans le code que tu nous montres, l'endroit où tu mets à jour les variables de session.... il semble donc normal qu'elles ne soient pas modifiées ...
.
Ca ne se fait pas de façon magique .... à quelle moment (quelles lignes de code) tu prends ce qui se trouve dans la bdd pour le mettre dans cette variable de session ??
Ben oui.. il est bien là le souci .....
Tu nous dis :
Donc.. tu mets à jour dans la bdd...
Mais ensuite..... si tu veux que ça se mette à jour également dans les variables de session .. ben...il faut bien mettre à jour cette variable de session....
Et là... aucune ligne de code ne se charge de ça dans ce que tu nous montres... il est là le souci !!