Variable SESSION n'affiche pas la valeur lors d'un UPDATE

[Résolu/Fermé]
Signaler
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015
-
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015
-
Hello les gens !

Débutant en PHP, je suis entrain de faire un petit site avec espace membre.

J'utilise la super globale "SESSION" pour gérer tout ça ;)

J'ai une table dans ma BDD pour les membres (Il parait que c'est mieux xD).
Lorsque que je souhaite afficher, par exemple, son pseudo, j'utilise bien évidemment $_SESSION['pseudo']. Jusque là, ça va ^^
Mais lorsque que je change le pseudo (admettons que je remplace Jean par Pierre) et que j'actualise la page où est affiché le pseudo, il ne change pas en Pierre mais reste bien sur Jean ...

Le changement est bien reçu dans la BDD mais pas sur la page ... Même avec un petit ctrl+f5 pour vider le cache, rien ne change ...

Savez-vous comment puis-je faire pour que la page prenne en compte le changement ?

Merci :)

5 réponses

Messages postés
21
Date d'inscription
lundi 10 août 2015
Statut
Membre
Dernière intervention
17 juillet 2020

Salut,

Il faut écrire par dessus, écraser la variable pour modifier les valeurs, est-ce bien ce que tu as fait ?
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Peut tu m'expliquer comment faire ?
Je signal que je débute en PHP ^^

J'ai juste fais un echo, rien de plus :/
Messages postés
14823
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
9 octobre 2021
306
Postes déjà ton code :
Ajout de la coloration syntaxique.
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Voici tout simplement mon code :

<?php echo $_SESSION['pseudo']; ?>
Messages postés
1096
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
31 août 2017
217
As tu bien compris la difference entre une "session" et une base de donnée ?
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Je ne pense pas car visiblement, ça mon code ne fonctionne pas ^^'
Je pense que la SESSION stock la valeur que je lui demande de stocker, donc la valeur de ma BDD. Mais ne l'actualise pas ... :/
Messages postés
1096
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
31 août 2017
217 >
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

C'est cela, mais la session existe du coté .. du client ;)
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Mais comment dois-je faire du coup ?
Messages postés
1096
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
31 août 2017
217 >
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

L'utilité de la session est de ne pas aller chercher constamment dans la bdd les memes infos. C'est une mini bdd qui est stockée du coté client. C'est donc different de la bdd qui est du coté serveur.

Si tu change quelque chose cote serveur, il faut rafraichir la session.

Mais réfléchis bien a l'architecture de ton site et de ta bdd avant de te lancer tete baisser. Si pour que ton site fonctionne tu dois rafraichir la session en permanence, c'est que tu l'as mal conçu ;)
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Merci beaucoup pour ta réponse :)
Si j'ai bien compris, je dois actualiser la variable session.
Mais comment faire du coup ? Une fonction ? Un bout de code ?
Messages postés
21
Date d'inscription
lundi 10 août 2015
Statut
Membre
Dernière intervention
17 juillet 2020

Yop ! Donc pour moi tu as déjà attribué "pierre" à ta session PSEUDO (pseudo => pierre);

pour changer de valeur (pseudo => jean), il faut que tu fasse comme quand tu l'as créée.
Messages postés
21
Date d'inscription
lundi 10 août 2015
Statut
Membre
Dernière intervention
17 juillet 2020

Non, en fonction de ton code ça se fera automatiquement. Mais il faut que tu le développe manuellement.
Dans ton cas, c'est un espace abonné. Donc normalement, tu n'as pas à changer de valeur constamment sauf dans le cas où un même PC est utilisé par plusieurs utilisateurs (auquel cas, ils se déconnectent).
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Et si par exemple, j'ai un système de point que l'utilisateur peux gagner en étant connecté, comment faire pour actualiser sans qu'il se déconnecte à chaque fois ?
Messages postés
1096
Date d'inscription
mercredi 25 juillet 2007
Statut
Membre
Dernière intervention
31 août 2017
217 >
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

En meme temps que tu update ta bdd, tu update la variable point dans ta session.

Il faut vraiment que tu pense que la session c'est un peu comme une bdd temporaire du COTE CLIENT ;)
Messages postés
21
Date d'inscription
lundi 10 août 2015
Statut
Membre
Dernière intervention
17 juillet 2020

Pas besoin d'utiliser les sessions dans ce cas là
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Comment faire ce système de point dans ce cas ? J'utilise un SELECT ? Mais du coup, comment afficher avec ce SELECT les points de cet utilisateur précisément ?
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Mon problème est résolu ! :)

J'ai donc compris que la variable SESSION n'interagissait pas directement avec la base de données, donc impossible de l'actualiser directement si la valeur du champ dans la table change.

J'ai donc utilisé :

$pseudo = $_SESSION['pseudo'];
  $req_pseudo = $bdd->query("SELECT toks FROM membres WHERE pseudo = $pseudo");
  while ($donnees = $req_pseudo->fetch())
  {
    echo $donnees['pseudo'];
   }


Merci à tous ceux qui m'on aidé :)
Messages postés
21
Date d'inscription
lundi 10 août 2015
Statut
Membre
Dernière intervention
17 juillet 2020

Vive la force du cerveau ;)
Messages postés
19
Date d'inscription
vendredi 24 octobre 2014
Statut
Membre
Dernière intervention
20 août 2015

Mdr ^^