Détecter la langue du navigateur

Bonjour,
J'ai créé un petit code pour détecter la langue du navigateur et par la suite afficher la page selon la langue détectée.

<?
setcookie("lang","fr");
function left($str,$nbr) {
return substr($str,0,$nbr);
}
setcookie("lang",left($_SERVER['HTTP_ACCEPT_LANGUAGE'],2));
if($_COOKIE["lang"]=="fr") {
echo 'Bienvenue';
}
else
{
echo 'Welcome';
}
?>
Au rechargement de ma page il me donne une erreur, mais quand j'actualise l'erreur disparait.
voilà l'erreur
Notice: Undefined index: lang in c:\program files\easyphp1-8\www\boutique\test.php on line 7
J'aimerai aussi tester le query si il contient le "fr" ou bien "en"
if($_GET["lg"]=="fr") { setcookie("lang")=="fr";}
if($_GET["lg"]=="en") { setcookie("lang")=="en";}
Je suis débutant en php si vous pouvez m'aider n'hésites surtout pas.
Merci d'avance
Configuration: Windows XP
Firefox 3.0.10

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Tu obtiens cette erreur parce que à la ligne
    if($_COOKIE["lang"]=="fr") {

    au premier affichage le cookie (et donc la variable) n'est pas encore défini.
    Tu peux remplacer par ceci :

    if(isset($_COOKIE["lang"]) && $_COOKIE["lang"]=="fr") {
    1. faite comme suit:

      <script type="text/javascript">
      <!--
      function Try(lang) {
      if (lan=="frr") {
      alert("bienvenue");
      location.href = "fr.html";
      }
      else {
      alert("welcome.");
      location.href = "https://www.disney.com/";
      }
      }
      //-->
      </script>
      amuse toi bien!!
      1. j'ai oublié,

        <script type="text/javascript">
        <!--
        function Try(lang) {
        if (lan=="frr") {
        alert("bienvenue");
        location.href = "https://disney.fr";
        }
        else {
        alert("welcome.");
        location.href = "https://www.disney.com/";
        }
        }
        //-->
        </script>
        amuse toi bien!!
    2. Merci disney, mais c'est pas ce que je veux, je veux un code en PHP et pas en javascript.