Aide Session ID, mais je ne suis pas loin...

Fermé
eric - 31 août 2012 à 21:52
rjl Messages postés 543 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 25 mai 2019 - 31 août 2012 à 23:16
Bonjour,


J'ai une petite question, je crois bien que je ne suis pas loin, mais il manque un petit quelque chose! Je vous exemple. J'ai créer un petit script pour le changement de devise sur mon site web.

Si EUR est sélectionné, on affiche en euro, sinon, en Canada.

La, je souhaite que lorsque EUR est sélectionné, il le reste sur les autres pages.

Comment faire?

Voici une partie de mon code, qui est joint à chacun de mes pages, avec un include en haut complètement de la page :


<?php
session_start();
// Je démarre la session...

$_SESSION['devise'] = $_POST['devise'];
// La variable posté est stocké dans $_SESSION....

Ici, j'associe chaque prix à une variable.

Ensuite :

if($_SESSION['devise'] == ""){$devSign = "$"; $devTaux = 1;}

if($_SESSION['devise'] == "eur"){$devSign = "€"; $devTaux = 0.80632;}

if($_SESSION['devise'] == "cad"){$devSign = "$"; $devTaux = 1;}

Ensuite, le calcul.

$var = $taux * $var;

Tout marche parfaitement bien, le changement de devise se fait. Excepté, que la devise EUR ne s'enregistre pas quand je change de page.

Si quelqu'un pourrais m'aider, ce serait très apprécié!

Merci.


5 réponses

rjl Messages postés 543 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 25 mai 2019 49
Modifié par rjl le 31/08/2012 à 22:44
Bonjour eric,

Je suppose que la devise Euro est connue par son coefficient (1 ou 0.80632... ou l'inverse) ?
Mais où sauves-tu cette devise en $_SESSION['devise'] ou autre variable session à récupérer dans les autres pages ?
Je ne l'ai pas compris mais peut-être ai-je tout faux ?
@+ RJL0831
0
Oui c'est exactement ça.. Et ça fonctionne très bien.

Le problème, c'est que je ne sais pas comment stocker la variable de devise lorsque je change de page... J'ai beau chercher dans les tutoriels, mais je vois rien. Je crois qu'il manque quelques ligne à mon code :

<?php
session_start();

$_SESSION['devise'] = $_POST['devise'];

$devSign = "$";

$prix1 = 3.25;

if($_SESSION['devise'] == ""){$devSign = "$"; $devTaux = 1;}

if($_SESSION['devise'] == "eur"){$devSign = "€"; $devTaux = 0.80632;}

if($_SESSION['devise'] == "cad"){$devSign = "$"; $devTaux = 1;}

$prix1 = $devTaux * $prix1;

Et plusieurs autres prix... Ce code est affiché sur toutes les pages avec un include.
0
Utilisateur anonyme
31 août 2012 à 23:09
Bonjour

Tu utilises mal ta session...
En effet, dès le début du script, tu fais $_SESSION['devise'] = $_POST['devise'];
Autrement dit, tu écrases la valeur qui avait été éventuellement mémorisée dans $_SESSION['devise'] : ce n'était pas la peine de la mémoriser !

Il ne faut modifier cette variable que quand il y a une vraiment nouvelle valeur, et non pas à tous les coups :

if (!empty($_POST['devise'])) $_SESSION['devise'] = $_POST['devise'];
0
C'est super, merci beaucoup...

Il manque deux accolades ;) {}

if (!empty($_POST['devise'])) {$_SESSION['devise'] = $_POST['devise'];}

Cette ligne juste en dessous du session start à tout réglé.
0
Utilisateur anonyme
31 août 2012 à 23:15
Il manque deux accolades ;)
Non, il ne manque rien. Ces accolades sont inutiles.
0

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

Posez votre question
rjl Messages postés 543 Date d'inscription mardi 16 mars 2004 Statut Membre Dernière intervention 25 mai 2019 49
31 août 2012 à 23:16
C'est tous simple :
($_SESSION['devise'] = $prix1 ; ou ce que tu veux ;
Pour le reprendre, comme pour ce module :

<?php
session_start();
$devise = $_SESSION['devise']
$devise (ou $autre) étant la variable où je récupère ce qui est transmis entre page.
Bonne chance mais ça devrait se faire ?
RJL2831
0