Je perd ma variable dans mon URL php

Fermé
jimmplante Messages postés 2 Date d'inscription mardi 20 novembre 2007 Statut Membre Dernière intervention 20 novembre 2007 - 20 nov. 2007 à 15:27
 D - 20 nov. 2007 à 17:43
Bonjour,
j'aimerais avoir de l'aide PHP à propos du site que je suis en train de construire multilingues, multidevises.

Par défaut mon site est en français avec la devise $CAN. Mon problème est lorsque je clique sur Anglais et que je change ma devise. Mon site redevient en français. et vice versa c'est-à-dire lorsque je sélectionne un autre devise et que je clique sur Anglais ma devise revient à $CAN.

Voici comment je procède (le site pour que vous puissez voir est le suviant : www.gimypro.com/maximeplante ) :

[b]Pour changer ma langue :[/b]
[i]Dans ma page html:[/i]
<td><a href=[b]"index.php?lang=fr" [/b]class="texteZoneD"><strong>Français</strong></a></td>
<td><a href=[b]"index.php?lang=en"[/b] class="texteZoneD"><strong>Anglais</strong></a></td>

[i]Et lors du chargement de ma page :[/i]

if(!isset($_GET['lang']))
{$_SESSION['lang'] = 'fr.php';}
else
{
if ($_GET['lang'] != '')
{$_SESSION['lang'] = ($_GET['lang'].'.php');}
}
include $_SESSION['lang'];



[b]Maintenant pour changer ma devise :[/b]
[i]Dans ma page html:[/i]

<form action="index.php" method="POST" >
<select name="currency" class="texteZoneD" style="width: 100px;" onchange="submit()">
<option value="CAD" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='CAD'){echo 'selected';}} ?>> $ Canadien</option>
<option value="USD" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='USD'){echo 'selected';}} ?>> $ Americain</option>
<option value="EUR" <?php if ( isset($_POST['currency']) AND !empty($_POST['currency']) ){if(($_POST['currency'])=='EUR'){echo 'selected';}} ?>> Euro</option>
</select>
</form>


[i] lors du chargement de ma page :[/i]

if ( isset($_POST['currency']) AND !empty($_POST['currency']) )
{$_SESSION['curr'] = $_POST['currency'];}
else
{ $_SESSION['curr'] = 'CAD';}

[i] et la conversion des prix :[/i]

<?php
$x = new CurrencyConverter('localhost','user','pass','convertisseurDeDevises','devises');
echo $x->convert(2.50,'CAD',$_SESSION['curr']);
echo $_SESSION['curr'];
?>



Qu'est-ce qui ne marche pas? Je sais que lors du changement de devise je perd ma variable lang dans mon url, comment le garder? ou comment procéder?

Merci pour votre aide


Jimmy Plante
A voir également:

1 réponse

Bonjour,

Mémorise la langue et la monnaie dans des variables de session.

Actuellement, tu appelles ta page tantôt par la méthode GET (liens de changement de langue) et tu effaces alors la monnaie (rien dans $_POST) ou bien tu appelles la page par POST (changement de monnaie) et alors tu effaces la langue (rien dans $_GET).

Avec ça tu devrais arrêter de planter ;)

D
0