Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/11/2007, 15h42   #1
Membre à l'essai
 
Inscription : novembre 2007
Messages : 59
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Canada

Informations forums :
Inscription : novembre 2007
Messages : 59
Points : 21
Points : 21
Envoyer un message via MSN à jimmplan
Par défaut Je perd ma variable URL lors d'un submit(), même avec la variable SESSION

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 le problème est le suviant : www.gimypro.com/maximeplante ) :

Pour changer ma langue :
Dans ma page html:
Code :
1
2
<td><a href="index.php?lang=fr"class="texteZoneD"><strong>Français</strong></a></td>
<td><a href="index.php?lang=en"class="texteZoneD"><strong>Anglais</strong></a></td>
Et lors du chargement de ma page :
Code :
1
2
3
4
5
6
7
8
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:
Code :
1
2
3
4
5
6
7
<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>
lors du chargement de ma page :
Code :
1
2
3
4
if ( isset($_POST['currency']) AND !empty($_POST['currency']) )
{$_SESSION['curr'] = $_POST['currency'];}
else
{ $_SESSION['curr'] = 'CAD';}
et la conversion des prix :
Code :
1
2
3
4
5
   <?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
jimmplan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/11/2007, 16h34   #2
Membre à l'essai
 
Développeur multimédia
Inscription : septembre 2007
Messages : 25
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur multimédia

Informations forums :
Inscription : septembre 2007
Messages : 25
Points : 21
Points : 21
Envoyer un message via MSN à Lo-chan
Alors déjà ici dans la balise "form", tu devrais lui passer en méthode "GET" ta langue actuelle :
Code :
<form action="index.php?lang=<?php echo $_GET['lang']; ?>" method="POST">
Ensuite, je te déconseille d'utiliser ton script de récupération de langue tel qu'il est. Tu modifies la variable de session qui retient ta langue. Pas pratique et c'est lourd en plus. Utilise plutôt ca :
Code :
1
2
3
4
5
6
7
8
9
if (isset($_GET['lang']) && !empty($_GET['lang']))
{
	if ($_GET['lang'] != $_SESSION['lang'])
		$_SESSION['lang'] = $_GET['lang']; // Cas du changement de langue
	include $_SESSION['lang'].".php"; // Langue passée par la méthode "GET"
}
elseif (isset($_SESSION['lang']) && !empty($_SESSION['lang']))
	include $_SESSION['lang'].".php"; // Langue passé par la session
else include 'fr.php'; // Langue par défaut : le fr
Celà te permettra de garder le paramètre langue en session et de le réutiliser. Par exemple, tu pourras remodifier ton formulaire comme ceci :
Code :
<form action="index.php?lang=<?php echo $_SESSION['lang']; ?>" method="POST">
Petite info en plus : utilises les balises [ code ] et [ /code ] lors de tes posts, la coloration est très importante. Merci.
Lo-chan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2007, 02h23   #3
Membre à l'essai
 
Inscription : novembre 2007
Messages : 59
Détails du profil
Informations personnelles :
Âge : 25
Localisation : Canada

Informations forums :
Inscription : novembre 2007
Messages : 59
Points : 21
Points : 21
Envoyer un message via MSN à jimmplan
Merci pour votre aide !!!
jimmplan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h04.


 
 
 
 
Partenaires

Hébergement Web