[PHP] Cookie bloqué par IE

Salut à tous!

J’ai réalisé le site web de mon entreprise, tout fonctionne parfaitement sauf… Les cookies.

En effet, il faut savoir que le site est disponible en français et en anglais.

Pour simplifier la procédure de sélection de la langue, j’ai 2 dossiers sur le serveur ftp, un qui est nommé ‘fr’ et l’autre ‘en’ (ces deux dossiers contiennent exactement les même fichiers, il n’y a que la traduction qui a été faire)

Le cookie que je sauvegarde stocke donc au choix soit ‘fr’, soit ‘en’, et c’est cette valeur qui est utilisée pour charger les pages dans la bonne langue.

Sous FireFox, je ne rencontre aucun problème, mais sous IE, tant que le niveau de sécurité n’est pas le plus faible, il n’enregistre pas le cookie, et donc ne prends pas en compte le changement de langue (il reste toujours en français, qui est utilisé par défaut)

Voici l’entête de mon fichier ‘index.php’ qui permet, justement, d’enregistrer le cookie:

<?php

/********** Prise en charge de la langue du site **********/
// Test présence cookie
if(isset($_COOKIE["langage"]))
  $lang = $_COOKIE["langage"]; 

// Test présence variable
if (isset($_GET['lang']))
  $lang = $_GET['lang'];

// Pas de paramétrage de langue = paramétrage par défaut
if(!isset($_COOKIE["langage"]) && !isset($_GET['lang']))
  $lang = 'fr';
  
// Svg configuration langue
setcookie("langage",$lang, time() + 10000000,"/");

$domaine = $lang;

?>

Ensuite, pour afficher les pages, j’utilise la variable $domaine, qui sous IE reste désespérément à ‘fr’:

<?php
echo "<body>";
  
echo "<div id='main'>";

  echo "<div class='header'>";
    echo "<img src='/files/logo.png' alt='logo'/>";
  echo "</div>";
  
  echo "<div class='menutxt'>";
    include($domaine.'/resources/top_menu.php'); // Ici, on charge, par exemple, le menu dans la langue désirée...
  echo "</div>";
....

Comment fair pour que IE accepte mon cookie???

Merci

  • Pourquoi ne pas conserver le paramètre dans l’URL plutôt que dans un cookie?

  • Pourquoi ne pas utiliser la langue du navigateur?

Parce que si un visiteur est amené à se connecter régulièrement, autant enregistrer ses préférences, plutôt que de lui imposer, à chaque visite, de sélectionner la langue désirée.

Et si la langue n’est ni le français, ni l’anglais???
Et si un français utilise un navigateur anglais, il ne peut pas changer la langue??
Bref, trop de contraintes pour un visiteur…

La langue de l’interface graphique du navigateur Internet n’est pas la même chose que la langue de prédilection pour la lecture d’une page (ex. mon Firefox 2.0 est la version US, mais lorsque j’arrive sur un site dispo en plusieurs langues, c’est bien la française qui prime sur l’anglaise).

D’après moi, l’ordre de priorité devrait être :

  • Langue indiquée dans le cookie
  • Langue indiquée dans l’URL (pour changer de langue)
  • Par défaut, la première langue que tu propose qui soit présente dans la liste du navigateur

C’est très bien tout ça, mais ça ne fait pas avancer le schmilblick :smiley:

Le gros problème que j’ai, c’est qu’IE semble bloqué mon cookie par manque d’informations de sécurité ou un truc dans le genre là, mais dur dur de trouver quelque chose sur le net!

Je cherche, je cherche!

Et si l’utilisateur désactive les cookies?
Et si IE n’aime plus les cookies?
Et si l’utilisateur utilise lynx?
Et si l’utilisateur ne comprend que l’allemand?

Je n’ai pas eu la réponse au 1er point :wink:

Note : Quelle valeur as-tu mis pour Domain et Path?

C’est le P3P

Un truc que IE il est en avance sur Fx…

Malheureusement, ça fait chier plus de monde :slight_smile:

(désolé, pas de solution)