IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Detecter le navigateur du visiteur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 38
    Par défaut Detecter le navigateur du visiteur
    Je vous explique mon probleme:
    Je developpe un site avec joomla en anglais et francais.
    J aimerais que quand le site est en anglais il puisse afficher mon bandeau en anglais et que quand il est en FR qu il m affiche le FR.

    Voici el script que jai mis pour gerer le bandeau selon la langue:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <? if ($_GET['lang']==en) { ?>
    <div>
    <script>
    embed_flash("./templates/images/bandeau.swf", 949, 206, 'bandeau' , '#FFFFFF', '', '', 4);
    </script>
    </div>
    <? } else { ?>
    <div>
    <script>
    embed_flash("./templates/images/bandeau_FR.swf", 949, 206, 'bandeau' , '#FFFFFF', '', '', 4);
    </script>
    </div>
    <? } ?>
    Mais le probleme est que quand je tape l adresse du site c est a dire www.3design.com, le parametre "lang" ne s affiche pas. Du coup le bandeau par default qui se mettra par rapport a mon site est le bandeau FR.

    Comment faire pour résoudre ce probleme????

    J ai trouvé que l on pouvait detecter la navigateur grace à ce script :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
     
    $_SERVER["HTTP_ACCEPT_LANGUAGE"]."<br>";
    $lang=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    ?>
    Du coup j ai rajouter cela est modifier legerement mon script precedant en :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <? if ('lang'==fr) { ?>
    				<div>
              <script>
                embed_flash("./templates/images/bandeau_FR.swf", 949, 206, 'bandeau' , '#FFFFFF', '', '', 4);
              </script>
              </div>  
    		  <? } else { ?>
    				<div>
              <script>
                embed_flash("./templates/images/bandeau.swf", 949, 206, 'bandeau' , '#FFFFFF', '', '', 4);
              </script>
              </div>  
    		  <? } ?>
    Mais cela ne marche pas. Jai le bandeau EN ( par default) quand je suis en FR.

    Ou se trouve mon erreur?

  2. #2
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut

    Alors $_SERVER["HTTP_ACCEPT_LANGUAGE"] te renvoit la langue que l'utilisateur à mis par défaut dans son navigateur et non le nom du navigateur.
    Pour a récupérer tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nav_lang=substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
    Ensuite ne peux que planter car 'lang' est une chaine de caractère et fr c'est ... rien vu que tu ne le mets pas entre quotes ou doubles quotes et qu'il n'y a pas de $ devant (à moins que ce soit une constante mais je doute).
    Tu ne voulais pas plutôt faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if ($_GET['lang']=='fr')
    ?

    PS : la remarque est aussi bonne pour car en n'est pas entre quotes.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 38
    Par défaut
    Ca ne marche tjr pas,
    j ai fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    <?php
    $langs=explode(",",$_SERVER["HTTP_ACCEPT_LANGUAGE"]);
    ?> 
    <?php
    if ((isset($_GET['lang']) && $_GET['lang']== "fr") || ($langs[0] == "fr")) {
    ?>
    <div>
    <script>
    embed_flash("./templates/images/bandeau_FR.swf", 949, 206, 'bandeau' , '#FFFFFF', '', '', 4);
    </script>
    </div>
    <?php } else { ?>
    <div>
    <script>
    embed_flash("./templates/images/bandeau.swf", 949, 206, 'bandeau' , '#FFFFFF', '', '', 4);
    </script>
    </div>
    <?php } ?>
    Mais quand ej tape l url www.monsite.com jai el contenu francais, mais av le bandeau EN, par contre apres quand ej change de rubrique la variable "lang" s affiche du coup jai le bon bandeau. Sinon ss la variable "lang" il me met par defaut le bandeau EN.

  4. #4
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php
    $langs=substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2);
    if (isset($_GET['lang'])) $langs=$_GET['lang'];
    {
    	if ($langs=='fr') echo "<div><script>embed_flash('./templates/images/bandeau_FR.swf', 949, 206, 'bandeau', '#FFFFFF', '', '', 4);</script></div>";
    	else echo "<div><script>embed_flash('./templates/images/bandeau.swf', 949, 206, 'bandeau', '#FFFFFF', '', '', 4);</script></div>";
    }
    else echo "<script>embed_flash('./templates/images/bandeau_FR.swf', 949, 206, 'bandeau', '#FFFFFF', '', '', 4);</script>";
    ?>

  5. #5
    Membre expérimenté
    Inscrit en
    Janvier 2004
    Messages
    242
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 242
    Par défaut
    Juste pour info :

    fonctionne puisque dans ce cas fr est vu comme un variable constante (créé avec define) mais bon dans ce cas ne rythme en rien

  6. #6
    Membre Expert
    Avatar de trotters213
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 571
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 571
    Par défaut
    Citation Envoyé par chaced
    Juste pour info :fonctionne puisque dans ce cas fr est vu comme un variable constante (créé avec define) mais bon dans ce cas ne rythme en rien
    C'est ce que j'ai dit 3 post plus haut :
    Citation Envoyé par trotters213
    ne peux que planter car 'lang' est une chaine de caractère et fr c'est ... rien vu que tu ne le mets pas entre quotes ou doubles quotes et qu'il n'y a pas de $ devant (à moins que ce soit une constante mais je doute).

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

Discussions similaires

  1. Utiliser onUnload juste pour detecter fermeture navigateur
    Par speedev dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 31/07/2012, 11h09
  2. Detecter un navigateur de PDA/portable sans js.
    Par StAfX dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 14/01/2009, 15h50
  3. Récupérer le navigateur du visiteur
    Par Olivier Regnier dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2007, 11h09
  4. aide pour detection du navigateur
    Par oborer dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 28/08/2006, 17h44
  5. [VB6] Détecter le navigateur par default
    Par GeDeon35 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 13/12/2004, 17h52

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