p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : juin 2010
    Messages : 221
    Points : 112
    Points
    112

    Par défaut Probleme de redirection suivant une langue

    Bonjour.
    Je developpe un site en 3 langues (francais, anglais, khmer). Cependant, je ne peux pas le proposer directement dans ces 3 langues.

    J'attribue une valeur a chaque langue comme ceci et je fais une condition pour l affichage des drapeaux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $lang_fr = '1';
    $lang_en = '0';
    $lang_kh = '0';
    if($lang_fr == 1){
         echo "<li><a href=\"".$address_website."fr/".$row_fr['url']."\"><img src=\"".$address_website."webroot/img/France-Flag-24.png"."\" height=\"24\" width=\"24\" title=\"Pictura in French language\" alt=\"Pictura French\" /></a></li>\n";
    }
    if($lang_en == 1){
         echo "<li><a href=\"".$address_website."en/".$row_en['url']."\"><img src=\"".$address_website."webroot/img/United-Kingdom-flag-24.png"."\" height=\"24\" width=\"24\" title=\"Pictura in French language\" alt=\"Pictura French\" /></a></li>\n";
    }
    Le problème c est qui si l utilisateur change la langue dans l'url, il obtient malgré tout par exemple l anglais qui est desactive. Donc je fait un test comme ci dessous mais le navigateur me signe une boucle de redirection.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    if($lang_en == 0 && $lang_kh == 0 ){
        header("Location: http://localhost/agence/fr/accueil");
    }
    Quelqu'un aurait il une idee?

    Merci d'avance.
    David

  2. #2
    Rédacteur/Modérateur
    Avatar de jreaux62
    Homme Profil pro
    Webdesigner
    Inscrit en
    août 2008
    Messages
    6 420
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Webdesigner
    Secteur : Arts - Culture

    Informations forums :
    Inscription : août 2008
    Messages : 6 420
    Points : 12 369
    Points
    12 369

    Par défaut

    Bonjour,
    je pense que tu devrais revoir la gestion des langues.
    En mettant la langue "en cours" en SESSION, par exemple.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $langues = array('fr', 'en', 'kh');
    // si l'utilisateur change la langue dans l'url : on met la bonne langue
    foreach($langues as $lg){
    	if( strpos($_SERVER['PHP_SELF'], $address_website.$lg.'/') ){
    		$_SESSION['lang'] = $lg;
    	}
    }
    if( empty($_SESSION['lang']) ){
    		$_SESSION['lang'] = 'fr'; // langue par défaut
    		header("Location: ".$address_website."fr/accueil");
    		exit;
    }
    "Si tu suis le chemin qui s'appelle « plus tard », tu arriveras à la place qui s'appelle « jamais »."
    François Camille Prévot (1910-1996), instituteur puis Directeur d'école et... mon grand-père.
    "Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire arrivent aisément."
    Nicolas Boileau-Despréaux (1636-1711).
    Mes tutos DVP
    Gestion-Affichage de Nouvelles
    Affichage en tableau HTML
    Fonctions de redimensionnement d'images

  3. #3
    Membre habitué
    Homme Profil pro
    Webmaster
    Inscrit en
    juin 2010
    Messages
    221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cambodge

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : juin 2010
    Messages : 221
    Points : 112
    Points
    112

    Par défaut

    Merci pour cette reponse qui fonctionne comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $langues = array('fr','en');
    foreach($langues as $lg){
        if(strpos($_SERVER['PHP_SELF'], $website_adr.$lg.'/') ){
            $_SESSION['lang'] = $lg;
        }
    }
    if($_GET['lang'] != in_array($_GET['lang'],$langues)){
        $_SESSION['lang'] = 'fr'; // langue par défaut
        header("Location: ".$website_adr."fr/accueil");
        exit;
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Redirection suivant le résultat d'une requête sql
    Par ecatomb dans le forum PHP & MySQL
    Réponses: 4
    Dernier message: 28/06/2013, 09h57
  2. Réponses: 3
    Dernier message: 13/03/2013, 23h06
  3. Redirection suivant langue du navigateur
    Par Mister Paul dans le forum Débuter
    Réponses: 2
    Dernier message: 23/11/2010, 16h19
  4. probleme pour faire gotoandplay suivant une variable
    Par logone dans le forum ActionScript 1 & ActionScript 2
    Réponses: 26
    Dernier message: 09/05/2006, 10h18
  5. [VB6] probleme de redirection d'une commande DOS
    Par WriteLN dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 10/06/2003, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo