Bonjour,
j'ai créé un site en php avec affichage sur page unique. je veux mettre 2 images clickable, avec 2 petits drapeaux permettant de choisir la langue d'affichage.
j'ai procéder en créant 2 fichiers: fr-lang.php et en-lang.php. Ils contiennent les memes variables, avec des valeurs différentes selon la langue.
ex: pour fr-lang.php
<?php
//---------------------------------------------------------
// menu de index.php
//---------------------------------------------------------
define('TXT_BOUTON_1', 'HOME');
define('TXT_BOUTON_2', 'bonjour');
define('TXT_BOUTON_3', 'au revoir');
?>
ex: pour en-lang.php
<?php
//---------------------------------------------------------
// menu de index.php
//---------------------------------------------------------
define('TXT_BOUTON_1', 'HOME');
define('TXT_BOUTON_2', 'hello');
define('TXT_BOUTON_3', 'good bye');
?>
jusque là ça roule. je veux créer une cookie sur ma 1ère page (index.php) comme ça:
<?php
if(isset($HTTP_COOKIE_VARS['lang'])) {
$lang = $HTTP_COOKIE_VARS['lang'];
} else {
// si aucune langue n'est déclarée on tente de reconnaitre la langue par défaut du navigateur
$lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2);
}
if ($lang=='fr') { // si la langue est 'fr' (français) on inclut le fichier fr-lang.php
include('lang/fr-lang.php');
} elseif ($lang=='en') { // si la langue est 'en' (anglais) on inclut le fichier en-lang.php
include('lang/en-lang.php');
}
//définition de la durée du cookie (1 an)
$expire = 365*24*3600;
//enregistrement du cookie au nom de lang
setcookie("lang", $lang, time() + $expire);
?>
<html>
<head>blabla</head>
<body>blabla</body>
</html>
j'ai donc testé l'existence de mon cookie, et selon le cas redirigé vers la bonne langue, ou sinon celle du navigateur.
Maintenant la ou j'ai un probleme, c'est que ma variable $lang ne change jamais. elle est sensé etre modifiée sur ce lien:
<a href="?page=<?php echo "$page";?>?lang=fr" ><span><span><img src="images/FR.png" height=25 width=32 /></span></span></a>
remarque:je passe une autre variable qui fonctionne très bien, $page, mais si j'enlève le code php lié à cette variable dans cette balise, le problème ne change pas.
Sous FF ou IE, le pb est le même. Si je vais voir le cookie dans mes doosiers, il est biuen là, mais la valeur lang est toujours 'fr', jamais 'en'...
J'espère avoir été le plus clair.
Après trop d'heures à tourner en rond, je m'en remets à vous!
Merci d'avance.Configuration: Windows XP
Firefox 3.0.2

