pb écriturede cookie

patrice_d
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 10:38

bonjour, j'essaye de faire un multi langage mais voilà quant je test mon code ci dessous le cookie s'écrit pas :(

Code : Tout sélectionner

<?php if(isset($HTTP_COOKIE_VARS['lang'])) { $lang = $HTTP_COOKIE_VARS['lang']; } else { $lang = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2); } $expire = 365*24*3600; setcookie("lang", $lang, time() + $expire); switch($lang) { case 'fr': include('fr-lang.php'); break; case 'en': include('en-lang.php'); break; default: include('en-lang.php'); } ?>
je pense que mon probleme se situe dans les 1ere lignes car quant je met:

Code : Tout sélectionner

<?php $lang ='fr' ; $expire = 365*24*3600; setcookie("lang", $lang, time() + $expire); switch($lang) { case 'fr': include('fr-lang.php'); break; case 'en': include('en-lang.php'); break; default: include('en-lang.php'); } ?>
ça marche :shock:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 févr. 2007, 12:41

Tu devrais utiliser les variables $_COOKIE et $_SERVER pour récupérer tes valeurs.

As-tu tester ta condition pour savoir si tu entres dans le if ou dans le else ? et as-tu vérifé les variables que tu récupérais ?
if(isset($_COOKIE['lang'])) { 
  $lang = $_COOKIE['lang']; 
  echo 'Cookie trouvé. Valeur : '. $lang;
} else { 
  $lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2); 
  echo 'Cookie non trouvé. Valeur : '. $lang;
} 
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

patrice_d
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 13:07

merci pour l'aide, aprés le test ça donne ça:
Cookie non trouvé. Valeur : fr

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

23 févr. 2007, 14:41

et ça je suppose donc que ca t'inclu bien le bon fichier, mais est ce que ca te créér bien le cookie ? (en actualisant juste la page, tu devrais avoir l'autre message)

Sinon vétrifies que ton navigateur accepte bien les cookies ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Invité
Invité n'ayant pas de compte PHPfrance

23 févr. 2007, 16:32

non le cookie n'est pas créer, je viens de faire l'essai ailleur (chez free) et la tout marche correctement. :?: le problème est que le site n'est pas hébergé chez free !!!

patrice_d
Invité n'ayant pas de compte PHPfrance

24 févr. 2007, 16:09

je viens de refaire l'essai en vidant le cache et cookie de navigateur, et même pb en passant chez free le cookie s'écrit bien mais pas par l'autre serveur, cela peut il être du au paramettre du serveur ? help !!!!
quelqu'un peut il me mettre sur la voix, merci