Cookie, suppression et modification pour le multi langue

Résolu
vleeks Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
BlackYoup Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour, j'ai un petit problème avec les cookies.
J'éssaie en ce moment de réaliser un site web qui supporte deux langues, l'anglais et le français. Pour ce faire, j'ai réalisé un petit script php censé créer un cookie de langue appelé lang_ylx.

Si l'utilisateur souhaite changer de langues, le cookie est supprimé, puis un nouveau avec le même nom prend l'autre valeur (je n'ai pas réussi à modifier le cookie existant). Cependant, ça ne marche pas non plus...

Lorsque le visiteur arrive pour la première fois, le script est censé créer un cookie prenant la valeur fr pour la langue de base, étant le francais. Cependant, lorsqu'il clique sur le bouton english, le script est censé changer la langue grâce à un passage de paramètre dans l'url appelé lang. Mais rien ne marche et je rammasse plein d'erreurs. Voici mon script :

$life = time()+30*24*3600 ;

if(!isset($_COOKIE['lang_ylx'])) {

    setcookie('lang_ylx', 'en',$life);
}

if(isset($_GET['lang'])) {

	if ($_GET['lang']=='fr') {      // si la langue est 'fr' par le bouton de langue, on définit le cookie francais
	
		setcookie('lang_ylx', NULL, -1); //On supprimme le précédent cookie
		
		setcookie('lang_ylx', 'fr',$life); //Puis on en recrée un
		header('Location: ../index.php');  
	} 

	else if ($_GET['lang']=='en') { 
	
		setcookie('lang_ylx', NULL, -1); //On supprimme le précédent cookie
		
		setcookie('lang_ylx', 'en',$life); 
		header('Location: ../index.php');  

	}
	
}

else
{

}


Le script est ensuite censé ramener à la page visitée, mais pour l'instant j'essaie juste de le ramener à l'index.

Merci beaucoup de votre aide
A voir également:

2 réponses

BlackYoup Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   20
 
Salut :)
Déjà, tu peux réécrire ton cookie à la volée sans pour autant essayer de le supprimer. Ensuite, quelles erreurs obtiens-tu ?
0
vleeks Messages postés 29 Date d'inscription   Statut Membre Dernière intervention  
 
Salut,

merci c'est tout bon j'ai trouvé une solution. :)
Pour info, je stocke mon information dans un cookie ainsi que dans une session. C'est la session qui fait fois, mais si y'a un cookie, il donne son info.

On récupère ensuite dans les fichiers de langue.
0
BlackYoup Messages postés 181 Date d'inscription   Statut Membre Dernière intervention   20
 
C'est aussi via les sessions que je fais pour mon site :)

Je peux aussi te suggerer de regarder du coté de $_SERVER['HTTP_ACCEPT_LANGUAGE'] qui pourrait te permettre de mettre directement la langue à "Anglais" si le résultat de la variable diffère de Francais :)

Un petit script pour te présenter le truc :

if(isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
    $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
else
    $lang = 'fr';

if($lang == 'fr')
    $_SESSION['language'] = 'french';
else
    $_SESSION['language'] = 'english';
0