Cookie, suppression et modification pour le multi langue

Résolu/Fermé
vleeks Messages postés 29 Date d'inscription jeudi 20 décembre 2012 Statut Membre Dernière intervention 7 octobre 2014 - 15 août 2013 à 18:35
BlackYoup Messages postés 181 Date d'inscription mardi 4 décembre 2012 Statut Membre Dernière intervention 10 juin 2014 - 16 août 2013 à 00:53
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 mardi 4 décembre 2012 Statut Membre Dernière intervention 10 juin 2014 20
15 août 2013 à 22:49
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 jeudi 20 décembre 2012 Statut Membre Dernière intervention 7 octobre 2014
16 août 2013 à 00:41
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 mardi 4 décembre 2012 Statut Membre Dernière intervention 10 juin 2014 20
Modifié par BlackYoup le 16/08/2013 à 00:57
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