Problème d'affichage du nom des utilisateurs

kazed8
Invité n'ayant pas de compte PHPfrance

12 janv. 2021, 17:53

Bonjour, j'ai un problème avec mon code: il y'a une page de connexion et une fois que je me connecte je souhaite afficher le nom de l'utilisateur et son email et ca marche parfaitement avec :

Code : Tout sélectionner

<?= htmlspecialchars($_SESSION['nom']); ?> <br/> <?= htmlspecialchars($_SESSION['email']); ?>
En effet, aucun problème.

Le problème apparaît quand je me déconnecte puis me reconnecte cela m'affiche à la place du nom et de l'email Undefined index: nom et

Undefined index: email.

Besoin d'aide svp :/ je ne vois pas d'où peut venir le problème étant donnée que lors de la première connexion le nom et email sont affichés.
De plus, aucun problème pour afficher le pseudo: ce bug n'apparaît que pour l'affichage du nom et de l'email.

Cordialement.

Mammouth du PHP | 2703 Messages

12 janv. 2021, 18:38

il faudrait avoir le script qui met quelque chose dans $_SESSION

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

13 janv. 2021, 12:35

Salutations !

Le problème vient du fait que tu affiches la valeur contenu dans $_SESSION['nom'] sans vérifier au préalable si celle-ci existe. Quand tu es déconnecté, l'index "nom" n 'existe pas dans ta variable $_SESSION, d'où le message d'avertissement.

Il te faut donc vérifier l'existence de la variable (ou de l'index en l'occurrence), avant de l'utiliser :
<?php
if (isSet($_SESSION['nom'])) 
  echo htmlspecialchars($_SESSION['nom']); 
else // optionnel
  echo 'Vous n\'êtes pas connecté.';
?> 
Même chose pour "email" et d'une manière générale à chaque fois que tu utilises une variable ou un index dont tu n'es pas sur qu'il a été défini précédemment :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...