Bonsoir,
Actuellement en train de développer un site bilingue français/anglais en PHP, je travaille sous EasyPHP 1.8 (PHP 4.3.10) avec librairie GD activée.
Je souhaite passer d'une page à l'autre une variable contenant la chaîne 'fr' ou 'en', suivant la langue choisie par l'utilisateur (par défaut français, un clic sur un lien permet de changer la langue). Je souhaite conserver cette variable sur toutes les pages, je me suis donc orienté vers les sessions.
Après avoir épluché plusieurs docs concernant les sessions (doc PHP.net, document "Débuter avec les sessions" de Cyril Beaussier notamment), je ne comprend toujours pas l'origine de mon problème.
Toutes mes pages commencent par un include de ce fichier :
Notez le "pouet" Il revient en haut de chaque page, ce qui signifie que ma session est toujours vide... En fait, le répertoire /tmp/ d'EasyPHP se remplit de fichiers session à chaque nouvelle page visitée. Il me semble donc que mon navigateur (Firefox 1.5 sous Windows XP Pro) ne reconnait pas la session commencée une page plus tôt, et qu'une nouvelle session se crée à chaque page visitée !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 <?php ini_set('arg_separator.output','&'); session_start(); // inclusion du fichier langue if (!isset($_SESSION['lang'])) { echo "pouet"; $_SESSION['lang'] = 'fr'; } if (isset($_GET['lang'])) { if ($_GET['lang'] == 'en') { $_SESSION['lang'] = 'en'; } else { $_SESSION['lang'] = 'fr'; } } echo $_SESSION['lang']; include("./inclu/lang/".$_SESSION['lang']."/lang.php"); ?>
Faut-il passer l'identifiant de session dans chaque URL pour toujours travailler dans la même session ? A ce moment, autant passer directement la variable $lang dans tous les URL (beurk) !
Partager