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

eric -  
rjl Messages postés 543 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Membre Dernière intervention   49
 
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
eric
 
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
 
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
eric
 
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
 
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   Statut Membre Dernière intervention   49
 
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