Problème sur la langue d'un site en php

Résolu
Bonjour,
Voila j'ai un site qui gère la langue de son contenu en fonction de son adresse :
www.monsite.com/index.php?lang=FR en francais
www.monsite.com/index.php?lang=EN en anglais
etc...

Je récupère donc la variable lang avec le code php : $lang = $_GET['lang'];

Je voudrais lui dire que si la variable lang est égale à FR, AL, ES le site sera respectivement en francais, allemand, espagnol; si la variable lang est nulle ou inconnue, il se mettra automatiquement en anglais (EN)

Je lui ai donc fixé la condition suivante :

if ($lang=="" || $lang!="FR" || $lang!="AL" || $lang!="ES" )
{
$lang="EN";
}

Le problème est que quelque soit le contenu de la variable au départ, elle récupère toujours la valeur EN...
Pourtant je n'ai pas l'impression d'avoir fait de faute ! si quelqu'un voit une erreur ou a déja connu cette situation, ce serait avec plaisir qu'il puisse m'aider !!!
Merci d'avance !!!
Configuration: Windows XP
Firefox 1.5.0.9

4 réponses

  1. OK ca marche !! merci beaucoup !!
    0
    1. Merci tu l'as très bien expliqué! c'est vrai que c'est tout à fait logique...
      Et pour ton système de tableau, c'est pas mal du tout, mais je ne pense pas devoir rajouter une langue... Mais je garde ça de côté !

      Mais merci beaucoup à vous deux !
      0
      1. Bonjour.

        if ($lang=="" || $lang!="FR" || $lang!="AL" || $lang!="ES" )
        {
        $lang="EN";
        } 

        Exemple avec $lang=AL :
        SI $lang=="" faux
        OU $lang!="FR" Vrai (puisque lang=AL)
        OU $lang!="AL" Faux
        OU $lang!="ES" Vrai (puisque lang=AL)

        Conditions OU => Comme une des conditions est vrais, le SI est valide.
        => on affecte $lang=EN.

        Autre problème : le jour où tu rajoutes une langue, il faut rajouter une condition. C'est vite lourd.

        Une possibilité :
        // On définit un tableau avec les langues autorisées...
        // On pourrait même faire un tableau associant les abréviations avec le nom, 
        // ou avec le lien vers l'image du drapeau, ou ...
        $arr_lang = Array ("EN", "FR", "AL", "ES");
        
        // Si $lang n'est pas dans le tableau, on lui donne la valeur par défaut
        if (! in_array($lang, $arr_lang) ) {
           $lang = 'EN';
        }
        

        -1