[RESOLU] variable dynamique et session

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] variable dynamique et session

Re: variable dynamique et session

par geofraynils » 30 sept. 2019, 17:03

Je n'avais pas compris le var_dump.... en fait le code fonctionne bien mais les variables ne sont pas utilisées par mes autres pages.... alors que les noms semblaient correspondre entre eux. Ce n'était visiblement pas le cas. J'ai donc trouvé de quoi corriger le problème. En tout cas, merci pour l'aide.

Re: variable dynamique et session

par @rthur » 30 sept. 2019, 12:40

J'avoue que je ne comprends pas grand chose à tes explications.
Donc il faut que tu avances dans ton debugage, que tu fasses une version ultra simple de ton code pour vérifier ce que tu dis ne pas fonctionner, car il est certain que les noms de variables de sessions peuvent être dynamiques.
Exemple :
<?php
for($i=0;$i<5;$i++) {
	$_SESSION[$i]='abc'.$i;
}
var_dump($_SESSION);
/* renvoie un array (size=5)
  0 => string 'abc0' (length=4)
  1 => string 'abc1' (length=4)
  2 => string 'abc2' (length=4)
  3 => string 'abc3' (length=4)
  4 => string 'abc4' (length=4)
*/
page 1 variable var1 déclarée
page 2 appelle la page 1, peut-on utiliser la var1 pour un calcul dans la page 2 ?
Oui, c'est le principe d'un include(), mais honnêtement, ça te prendrai 1 minutes à tester, donc plutôt que de poser la question, crée 2 pages, définie une variable et fais un test.

Re: variable dynamique et session

par Saian » 30 sept. 2019, 12:34

Salut, je dirai que si tu n'as qu'une variable dans la session c'est soit que php ne passe qu'une fois dans ta triple boucle (à priori pas possible), soit que le nom de variable construit à partir du tableau liste est toujours le même quelques soient les index lus (plus probable).

Re: variable dynamique et session

par geofraynils » 30 sept. 2019, 12:17

Est-ce tout simplement impossible de générer automatiquement plusieurs variables de session ? Dois-je alors passer par des variables normales ? Sont-elles alors transmises d'une page à l'autre avec un include ?
exemple :

page 1 variable var1 déclarée
page 2 appelle la page 1, peut-on utiliser la var1 pour un calcul dans la page 2 ?

Re: variable dynamique et session

par geofraynils » 23 sept. 2019, 17:49

J'ai retiré les guillemets dans le nom mais ca ne change pas mon problème. Les variables ne se génèrent pas comme je le voudrais, à chaque itération le code crée la même variable session[$var1] au lieu d'utiliser le contenu de la variable pour donner le nom.

Pour le code très "laid" j'ai juste épuré la partie calculatoire incluse dans la condition si la variable existe déjà.

Re: variable dynamique et session

par @rthur » 22 sept. 2019, 23:15

Bonjour,

3 petits commentaires/suggestions :
$var1="'".$liste[$i]['modification'].$liste[$j]['statistique'].$liste[$k]['piece']."'";
Les guillemets simples ne font pas partie de ton nom de variable donc tu n'as pas besoin de les ajouter.

if(isset($_SESSION[$var1])){}else{$_SESSION[$var1]=0;}
Ça c'est très "laid" comme code.
Si tu veux faire une action si la variable n'existe pas alors autant le mettre directement en condition if (isset($var)===false)
ou en version courte if (!isset($var))


Je te recommande d'utiliser var_dump() pour voir le contenu de tes variables et faire ton debug, c'est + fiable et + complet que de faire des echo.

variable dynamique et session

par geofraynils » 22 sept. 2019, 09:11

bonjour,

Pour mon projet de site web ayant pour objectif de simuler les mécaniques d'équipement d'un jeu vidéo (théorycrafting sur swtor) j'ai besoin de générer de nombreuses variables. Pour cela j'ai mis en place le code suivant.

J'arrive ainsi à générer la liste des noms de variables correspondants mais pas à faire en sorte que ces noms génèrent des variables de session. Je galère et je n'arrive pas à comprendre ce qui ne va pas... Si quelqu'un a une idée de ce qui ne pas je suis preneur, ou s'il y a une autre manière de gérer ces variables, qui doivent stocker des nombres sur lesquels nous allons calculer ensuite. Une telle génération prenant beaucoup de temps de chargement.
for($i=0;$i<5;$i++)
              {
                for($j=0;$j<10;$j++)
                {
                  for ($k=0;$k<14;$k++)
                  {
                    $var1="'".$liste[$i]['modification'].$liste[$j]['statistique'].$liste[$k]['piece']."'"; //génère la liste des noms de variables à partir des mots contenus dans la base de donnée dans diverses colonnes. 
                    if(isset($_SESSION[$var1])){}else{$_SESSION[$var1]=0;}
                  //echo " ";  //vérification manuelle des valeurs en chargeant la page initialisation.
                  //echo $_SESSION[$var1];
                  //echo "<br/>";
                  }
                }
              }