Je perd ma variable dans mon URL lors d'un submit()

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 ) :

Pour changer ma langue :
Dans ma page html:

<a href=“index.php?lang=fr” class=“texteZoneD”>Français
<a href=“index.php?lang=en” class=“texteZoneD”>Anglais

Et lors du chargement de ma page :

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

Maintenant pour changer ma devise :
Dans ma page html:

> $ Canadien > $ Americain > Euro

lors du chargement de ma page :

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

et la conversion des prix :

<?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

ton problème vient du fait que tu écrase la variable session :

if(!isset($_GET['lang']))
{if(!isset($_SESSION['lang']) || empty($_SESSION['lang'])) //Il faut rajouter cette condition !
   $_SESSION['lang'] = 'fr.php';}
else
{
if ($_GET['lang'] != '')
{$_SESSION['lang'] = ($_GET['lang'].'.php');}
}
include $_SESSION['lang'];

Merci de m’avoir éclairer. voici mon code final qui marche :

//Constante
$default_lang = ‘fr’;

// Langue spécifiée dans l’url
if (isset($_GET[‘lang’]) AND !empty($_GET[‘lang’]))
{
$_SESSION[‘lang’] = $_GET[‘lang’] . ‘.php’;
}
// Pas de langue dans l’url
else
{
// La variable de session n’existe pas ou est vide. On force à la valeur par défaut
if (!isset($_SESSION[‘lang’]) || empty($_SESSION[‘lang’]))
{
$_SESSION[‘lang’] = $default_lang . ‘.php’;
}
}

//Inclus le bon fichier de langue
include($_SESSION[‘lang’])