Sauvegarder données après déco

Sauvegarder données après déco - PHP - Programmation

Marsh Posté le 17-09-2010 à 18:58:47    

Bonjour ou re bonjour pour certains !
 
 
 Voilà mon soucis: Lorsque j'enregistre des données dans la bdd avec une variable $_SESSION, elles durent le temps de la session et ensuite disparaissent. Logique me direz-vous.
 
 Cependant, n'y a t-il pas un moyen de les enregistrer définitivement, même après déco comme un $_POST ?
 Voici un code que j'ai tapé:
 
 
 
   <?php
   
    $pseudo= $_SESSION['pseudo'];
    $plus= $_SESSION['points']
   
   if($_POST['reponse'] == 2)
   {
     $_SESSION['points'] ++;  
     
   $req = $bdd->exec("UPDATE membres SET points ='".$plus."' WHERE pseudo ='".$pseudo."'" );  
   ?>
 
Donc à chaque fois mon incrémentation bien et les "points" vont se cumuler dans le champs correspondant dans la bdd
 
Mais après déconnexion et reconnexion, lorsque je recommence l'incrémentation, au lieu de cumuler les nouveaux points par desuss les anciens (ceux d'avant la déco), et ba sa reprend à 0.
 
En gros au lieu de faire par exemple 5 points(avant déco) + 2points(après reco) sa fait 0 points + 2 points(après reco)
 
 Cela vient-il du fait que j'utilise update ou sa n'a rien à voir ?
 
Merci d'avance

Reply

Marsh Posté le 17-09-2010 à 18:58:47   

Reply

Marsh Posté le 17-09-2010 à 20:23:03    

Fait voir ou est-ce que tu initialises tes variables de session.


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 18-09-2010 à 09:47:26    

Mes variables je les initialises sur la page d'accueil après que le membre se soit connecté avant tout code html elle marchent bien !  
 
Je pense que le problème vient plus de ma requête, parce que c'est dans la bdd que le champs revient toujours à 0. Est ce que UPDATE peut en être la cause ? car comme son nom l'indique il "rafraichi" et vu que les variables de session reviennent à 0 après déco... et ba UPDATE fait pareil... Il conserve pas les données précédentes.
 
 Dans ce cas il faudrait que j'utilise quel type de requête ?


Message édité par Jacksons le 18-09-2010 à 09:51:48
Reply

Marsh Posté le 18-09-2010 à 10:43:26    

si tu veux additionner les points aux points stockés dans la BD tu fais tout bêtement:

Code :
  1. $req = $bdd->exec("UPDATE membres SET points = points + $plus WHERE pseudo = '$pseudo'" );


Reply

Marsh Posté le 18-09-2010 à 10:51:40    

Ah oui sa marche merci !

Reply

Marsh Posté le 18-09-2010 à 12:01:21    

Jacksons a écrit :


 Voilà mon soucis: Lorsque j'enregistre des données dans la bdd avec une variable $_SESSION, elles durent le temps de la session et ensuite disparaissent. Logique me direz-vous.


 
[:pingouino]
 

Jacksons a écrit :


 Cependant, n'y a t-il pas un moyen de les enregistrer définitivement, même après déco comme un $_POST ?
 


 
[:pingouino]


---------------
Gamertag: CoteBlack YeLL
Reply

Marsh Posté le 18-09-2010 à 17:37:05    

ouai tu m'as compris quoi je voulais dire "lorsque j'utilise des $_SESSION pour enregistrer des valeurs le temps d'une visite et les insérer par le biais d'une requete dans la bdd"
 
et le $_POST je voulais dire "que j'enregistre la saisi de l'utilisateur dans la bdd la aussi par le biais d'une requête".
 
Mais sa certains l'ont compris de suite :)

Reply

Marsh Posté le 20-09-2010 à 15:13:11    

Jacksons a écrit :

ouai tu m'as compris quoi je voulais dire "lorsque j'utilise des $_SESSION pour enregistrer des valeurs le temps d'une visite et les insérer par le biais d'une requete dans la bdd"
 
et le $_POST je voulais dire "que j'enregistre la saisi de l'utilisateur dans la bdd la aussi par le biais d'une requête".
 
Mais sa certains l'ont compris de suite :)


Non il ne t'a pas compris justement :) Ce qui l'a troublé c'est le fait que tu enregistres les données avec une variable de session.
Ton utilisateur a ses données en session. Normal jusque là.
 
Quand tu as des données à mettre à jour, liées à un utilisateur, tu dois vérifier qu'il est toujours connecté sur le site, donc que ta variable de session existe toujours avant d'exécuter ta requête. C'est le principe de base qu'utilise phpMyAdmin par exemple dont les sessions durent 1800 secondes.

Reply

Marsh Posté le 20-09-2010 à 15:37:24    

Jacksons a écrit :

Bonjour ou re bonjour pour certains !
 
 
 Voilà mon soucis: Lorsque j'enregistre des données dans la bdd avec une variable $_SESSION, elles durent le temps de la session et ensuite disparaissent. Logique me direz-vous.
 
 Cependant, n'y a t-il pas un moyen de les enregistrer définitivement, même après déco comme un $_POST ?
 Voici un code que j'ai tapé:
 
 
 
   <?php
   
    $pseudo= $_SESSION['pseudo'];
    $plus= $_SESSION['points']
   
  if($_POST['reponse'] == 2)
   {
     $_SESSION['points'] ++;  
     
   $req = $bdd->exec("UPDATE membres SET points ='".$plus."' WHERE pseudo ='".$pseudo."'" );  

   ?>
 
Donc à chaque fois mon incrémentation bien et les "points" vont se cumuler dans le champs correspondant dans la bdd
 
Mais après déconnexion et reconnexion, lorsque je recommence l'incrémentation, au lieu de cumuler les nouveaux points par desuss les anciens (ceux d'avant la déco), et ba sa reprend à 0.
 
En gros au lieu de faire par exemple 5 points(avant déco) + 2points(après reco) sa fait 0 points + 2 points(après reco)
 
 Cela vient-il du fait que j'utilise update ou sa n'a rien à voir ?
 
Merci d'avance


 
ce qui me gène en rouge au dessus, c'est le fait que tu incrémente une variable $_SESSION['points']  du coups, la variable $plus n'est plus bonne et donc la requête SQL de mise à jour n'est plus bonne, à moins que tu la garde pour la prochaine fois, mais le problème ce pose si tu arrive à la fin du questionnaire :??:  


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 21-09-2010 à 20:05:21    

Oui effectivement j'ai réglé le problème ! merci :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed