GNT sans publicité, site mobile, fonctionnalitées exclusives...

Redefinir un cookie par une variable ?

Le
GizMecano
Hello world,

Je continue, petit à petit, à essayer de créer un site dont l'interface
serait disponible en plusieurs langues.

J'ai compris comment définir un cookie et détecter la langue utilisée
par le navigateur, mais j'aimerais pouvoir ajouter une nouvelle
possibilité, en permettant au visiteur de changer la langue de
l'interface, au cas où il préfèrerait une autre langue (on ne sait
jamais).

L'idée est donc la suivante : définir un cookie, soit à partir des
données du navigateur, soit à partir d'un menu qui permet de transférer
une variable.

Après de nombreuses visites ici et là, je pensais avoir trouver mon
bonheur en écrivant :

> if (isset ($_GET['langue'])) { $langue =
> htmlentities(strip_tags($_GET['langue'])) =="'langue"; }
>
> else if (isset($_COOKIE_['langue'])) { $langue = $_COOKIE['langue'];
> }
>
> else { $langue =
> substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2); }
> switch($langue){ case 'en': case 'es': case 'fr': case 'it': case
> 'pt': include($langue.'/index.php'); break; default:
> include('fr/index.php'); break; }
>
> $expire = 365*24*3600; setcookie("langue", $langue, time() +
> $expire);

Mais voilà, ça ne fonctionne pas. La partie basée sur la détection du
navigateur, pour sa part, fonctionne très bien, puisque quand je change
ma langue dans Firefox, le cookie est redéfini. En revanche, pas moyen
de réécrire le cookie quand je clique sur les petits boutons de mon menu
supplémentaire, que j'ai pourtant pris soin d'écrire ainsi, par exemple :

> $pagactuelle=$_SERVER['SCRIPT_NAME']; echo "<a href=\"",
> $pagactuelle, "?langue=fr\"><img src=\"langues/fr/oui.png\"
> width=\"32\" height=\"16\" class=\"drapeau\" alt=\"Français\"
> title=\"Français\"/></a>";

Merci d'avance à tous ceux qui voudront bien me montrer où j'ai pu faire
une erreur.

Ciao,

--
Which are the two basic principles of Windows system administration?
For minor problems, reboot. For major ones, reinstall

GizMecano Laboratory
http://gizmecano.free.fr/

--
Lire les 2 réponses

Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
CrazyCat
Le #688779
GizMecano wrote:

if (isset ($_GET['langue'])) { $langue >>htmlentities(strip_tags($_GET['langue'])) =="'langue"; }

else if (isset($_COOKIE_['langue'])) { $langue = $_COOKIE['langue'];
}



Lorsue tu as ton $_GET, tu ne remplis pas ton cookie?
Etrange non?
Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me
choque un peu, surtout le "'langue" sans fermer la simple quote (ou bien
erreur de copie)

--
Tchattez en liberté: http://www.c-p-f.net
Tout sur les eggdrops: http://www.c-p-f.org
ML @

--


GizMecano
Le #685859
Hello,


Lorsue tu as ton $_GET, tu ne remplis pas ton cookie? Etrange non?


J'ai essayé avec les deux solutions, mais aucune des deux ne
fonctionnent correctement. En toute logique, effectivement, je pense que
je devrais définir le cookie deux fois, puisque je veux switcher le
cookie déjà en place...

Puis le htmlentities(strip_tags($_GET['langue'])) =="'langue"; } me
choque un peu, surtout le "'langue" sans fermer la simple quote (ou
bien erreur de copie)


Erreur de copie, effectivement :-(

A force de glaner des bouts de codes un peu partout pour arriver à faire
une sauce personnelle, j'avoue que je m'y perd un peu dans mes ctrl-v ;-)

Ceci dit, si quelqu'un ici à une combine pour arriver à réécrire un
cookie déjà précédemment défini, à partir d'une nouvelle variable,
j'avoue que ça m'aiderait beaucoup.

D'avance merci,

Ciao,

--
Which are the two basic principles of Windows system administration?
For minor problems, reboot. For major ones, reinstall...

GizMecano Laboratory
http://gizmecano.free.fr/

--

Publicité
Suivre les réponses
Poster une réponse
Anonyme