Variables variables (ou variables dynamiques) et session_register

Résolu
dj_missa Messages postés 6 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 29 mai 2006 - 28 mars 2006 à 22:21
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 - 29 mars 2006 à 09:36
Bonjour,

je programme actuellement un panier php et je me suis heurté a un problême que je n'ai pas réussi à surmonter.

Je dois enregistrer differentes variable dans une session pour que le
visiteur retrouve ces articles dans son panier après être aller visiter
d'autre pages.

Jusque là, pas de problèmes. Mais les variables que je dois enregistrer son variables elles-même (ou variables dynamiques).

A chaque fois que le visiteur ajoute un article dans son panier le nom
de la variable que je dois ajouter dans sa session doit changer:

$variable1

$variable2

$variable3

...

je posséde le nombre (1, 2, 3, ...) dans la variable $nbr et le nom de l'article dans la variable $nom_de_larticle et je pensais m'y prendre de cette manière:

${'article'.$nbr} = $nom_de_larticle;

session_register ({'article'.$nbr});

(j'ai supprimé le $ de " ${'article'.$nbr} " puisque session_register reçoit en argument le nom de variable sans $.

Mais malheureusement cela ne fonctionne pas...

J'ai aussi essayer avec $_SESSION[] mais: même résultat : aucune valeur n'est enregistrée.

Merci pour vos réponses futures qui je l'éspère m'apporteront des lumières.

8 réponses

malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
29 mars 2006 à 09:36
Hello,

session_start () fonctionne très bien comme ça.
session_register est déprécié.

Ensuite, je peux savoir pourquoi tu n'utilises pas un tableau...?
$_SESSION['panier'][$nbr]['noarticle'] = $noarticle;
$_SESSION['panier'][$nbr][designation] = $designation;

etc...
3
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
28 mars 2006 à 22:28
Tu testes en local ou chez un hébergeur?

Grrrrrrrrrrr
0
dj_missa Messages postés 6 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 29 mai 2006
28 mars 2006 à 22:30
En local.

Pourquoi??
0
dj_missa Messages postés 6 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 29 mai 2006
28 mars 2006 à 22:33
(Avec EasyPhp)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
28 mars 2006 à 22:34
Parceque chez free par exemple il faut créer un répertoire spécial pour que les sections fonctionne.

Normalement le code $_SESSION['nom']=valeur; fonctionne.

Est ce que tu peux mettre le code complet?

Grrrrrrrrrrr
0
dj_missa Messages postés 6 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 29 mai 2006
28 mars 2006 à 22:39
<?php

session_start();



if ($nbr != "")

{$nbr=$nbr+1;}

else

{$nbr="1";}



${'noarticle'.$nbr} = $noarticle;

${'designation'.$nbr} = $designation;

${'taille'.$nbr} = $taille;

${'prix'.$nbr} = $prix;

${'qnt'.$nbr} = 1;



print ${"noarticle".$nbr};

print ${"designation".$nbr};

print ${"taille".$nbr};

print ${"prix".$nbr};

print ${"qnt".$nbr};



session_register ("nbr", "{'noarticle'.$nbr}", "{'designation'.$nbr}", "{'taille'.$nbr}", "{'prix'.$nbr}", "{'qnt'.$nbr}");





//------------

//-RECEPTION:-

// $noarticle

// $designation

// $taille

// $prix

//------------

//-ENVOI: (dans des valeurs de session)-

// $nbr

// $noarticleX

// $designationX

// $tailleX

// $prixX

// $qntX

// X = $nbr

//------------

?>
0
gibozsec Messages postés 318 Date d'inscription mardi 27 mai 2003 Statut Membre Dernière intervention 11 mars 2010
28 mars 2006 à 22:46
session_start();

Cette fonction prend en paramètre l'id de la session que tu veux utiliser, je ne sais pas comment elle réagit sans.

Essaye :

session_start($PHPSESSID);

et passe le paramètre $PHPSESSID à chacune de tes page pour propager l'identification de session.

Peut être que les infos sont bien enregistrée mais que tu n'y accede pas puisque tu ne lit pas la bonne session.

Grrrrrrrrrrr
0
dj_missa Messages postés 6 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 29 mai 2006
28 mars 2006 à 22:52
Je ne pense pas que se soit ca car lorsque j'enregistre une variable
simple (ex $variable = "chaine") tout se passe bien et je parviens sans
problêmes à lire la variable.

Je pense que sa coince à l'enregistrement de la variable : $nbr devrait
être remplacer par la valeur qui lui "correspond" mais session_register
enregistre $nbr directement comme si c'était une chaine de caractère au
lieu de chercher la valeur de $nbr.

Et je ne sais pas comment y remédier...
0
Rejoignez-nous