Problème transmission de variable

Fermé
Scard Messages postés 115 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 3 juillet 2012 - 19 juin 2010 à 18:19
Scard Messages postés 115 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 3 juillet 2012 - 19 juin 2010 à 19:10
Bonjour,

Je propose aux visiteurs de mon site de le traduire en anglais s'ils le souhaitent. Je transmet donc par url la variable langue que j'enregistre ensuite dans une variable $_SESSION. Donc, après avoir choisi l'anglais, normalement, toutes les pages seront en anglais sans que j'ai besoin de changer la langue à chaque fois. Lorsque je teste le processus sur localhost, ça fonctionne très bien mais lorsque je le met en ligne, la variable langue ne se transmet pas de page en page. Pour aller voir le problème : http://www.albi-gite.fr

Est-ce que quelqu'un à une idée ?

Merci d'avance
Scard

1 réponse

lezao Messages postés 469 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 14 août 2016 36
19 juin 2010 à 18:28
t'as bien mis le session_start(); tout en haut de la page, sur chaques pages ?

Ou si non mets nous le debut de ton code, que l'on puisse voir ce qui est en est.
0
Scard Messages postés 115 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 3 juillet 2012 7
19 juin 2010 à 18:31
Oui, je l'ai bien mis. Mais je l'ai mis dans un include que j'insère au début de chaque page.
Voici le code :
<?php
session_start();
if (isset ($_GET['lang']))
{
$_SESSION['lang'] = $_GET['lang'];
}
?>
0
lezao Messages postés 469 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 14 août 2016 36
Modifié par lezao le 19/06/2010 à 18:39
ça me parait correct, pourquoi ne ferais tu pas un test du genre, sur toutes les pages tu mets un:

echo $_SESSION["lang"] ;

pour voir si sa passe bien ?
0
lezao Messages postés 469 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 14 août 2016 36
Modifié par lezao le 19/06/2010 à 18:42
je crois que j'ai compris, parce que si tu mets ce code sur toutes les pages, il va remettre la variable session a 0 si $_get est vide.

il faudrais faire:

if($_GET['lang'] != ""){$_SESSION["lang"] = $_GET['lang'] ; }

pour ne pas remplir la variable session par du vide.

Ne serais-ce pas le probleme ?
0
Scard Messages postés 115 Date d'inscription samedi 6 décembre 2008 Statut Membre Dernière intervention 3 juillet 2012 7
19 juin 2010 à 18:52
Oui mais pourquoi ça marche sur localhost alors ? Parce que, en faisant :
echo $_SESSION["lang"] ; 
la variable est affichée sur chaque page si je suis sur localhost, ce qui n'est pas le cas lorsque je le passe en ligne.

Je viens d'essayer ce code mais ça ne change rien. Je comprends pas pourquoi ça marche seulement sur localhost
0
lezao Messages postés 469 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 14 août 2016 36
Modifié par lezao le 19/06/2010 à 19:01
ça doit etre une question de configuration du serveur, la config est diferente.

Tu peux faire un fichier aavec cette ligne dedans pour voir ta config et les variables globales :

<? phpinfo() ; ?>


As tu éssayés ce que j'ai mis plus haut ? pour ne pas reinitialiser la variable de session ?

tiens j'ai lu un article sur les variables de sessions ils disent qu'il est possible que les sessions ne soient pas autorisees:

https://cyberzoide.developpez.com/php4/faqsession/#life
0