Page 1 sur 1

cookie pour changement language

Posté : 19 févr. 2006, 13:53
par Dgse
Bonjour

J'ai un petit soucis , j'ai traduis le site en une autre langue est j'aurais voulu en clicquant sur le drapeau correspondant a la langue celui ci se charge bien dans la langue concerné.. j'ai fais ceci mais j'ai quand meme un petit probleme.
<?php
$langue = (isset($HTTP_GET_VARS['lang'])) ? $langue : $HTTP_COOKIE_VARS['langaaimm'];
empty($HTTP_COOKIE_VARS['langaaimm']) ? $langue = "fr" : $langue = $HTTP_GET_VARS['lang'];
setcookie("langaaimm",$langue,time()+24*3600*30);
echo $HTTP_COOKIE_VARS['langaaimm'].$langue;exit();
?>
Le lien qui appelle la langue un peu plus bas dans la page

Code : Tout sélectionner

<a href="index.php?lang=fr"><img src="img/france.gif" border="0" width="22" height="12" alt="Français"></a><a href="index.php?lang=uk"><img src="img/anglais.gif" border="0" width="22" height="12" alt="English"></a>
les erreur affichees

Code : Tout sélectionner

Notice: Undefined index: langaaimm in d:\outils\internet\easyphp1-7\www\aaimm\index.php on line 2 Warning: Cannot modify header information - headers already sent by (output started at d:\outils\internet\easyphp1-7\www\aaimm\index.php:2) in d:\outils\internet\easyphp1-7\www\aaimm\index.php on line 4 Notice: Undefined index: langaaimm in d:\outils\internet\easyphp1-7\www\aaimm\index.php on line 5
Merci a vous

Dgse

Posté : 19 févr. 2006, 14:28
par Cyrano
Utilise dans un premier temps un code à jour : ton code est obsolète, c'est de la syntaxe PHP3, proposition de corrigé :
<?php
$langue = (isset($_GET['lang'])) ? $_GET['lang'] : ((isset($_COOKIE['langaaimm']) && !empty($_COOKIE['langaaimm'])) ? $_COOKIE['langaaimm'] : "fr");

setcookie("langaaimm", $langue, time()+24*3600*30);
echo $_COOKIE['langaaimm'].$langue;
exit();
?>
Tu noteras aussi que l'utilisation de l'opérateur ternaire est modifiée. Fais un tour dans le FAQ, il y a des informations sur cet opérateur et la manière de l'utiliser.

Posté : 19 févr. 2006, 17:46
par Dgse
Bonjour

Merci a toi Cyrano , encore une fois Super ca fonctionne ...
ton code est obsolète, c'est de la syntaxe PHP3
Je sais mais mon hebergeur n'accepte pas les nouvelle variables GLOBAL.. Pourtant sur leur support il affiche bien php 4 enfin bon, pour le moment je fais avec.

Tu noteras aussi que l'utilisation de l'opérateur ternaire est modifiée. Je pensais pas que l'ont pouvait l'utiliser de cette façon.

@+ et Merci encore

Dgse