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 :

[PHP-JS] $HTTP_USER_AGENT avec ou sans $_SERVER


Sujet :

Langage PHP

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut [PHP-JS] $HTTP_USER_AGENT avec ou sans $_SERVER
    Bonjour

    J'avais une fonction qui me retournait le nom du navigateur :
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    if (eregi('msie', $HTTP_USER_AGENT) && !eregi('opera', $HTTP_USER_AGENT))
    {
    // Internet Explorer
    $navigateur="MSIE";
    }
    elseif (eregi('opera', $HTTP_USER_AGENT))
    {
    // Opera
    $navigateur="Opera";
    }
    elseif (eregi('Konqueror', $HTTP_USER_AGENT))
    {
     $navigateur="Konqueror";
    }
    Elseif (eregi('Mozilla/4.', $HTTP_USER_AGENT))
    {
    // Netscape 4.x
    $navigateur="Netscape 4.x";
    }
    elseif (eregi('Mozilla/5.0', $HTTP_USER_AGENT))
    {
    // Netscape 6
    $navigateur="Netscape 6.x";
    }
    else
    {
    // Autres navigateurs
    $navigateur="Navigateur inconnu";
    }
    Elle ne marche plus !
    Je dois remplacer $HTTP_USER_AGENT par $_SERVER["HTTP_USER_AGENT"]. Depuis quand y-a t'il ce problème ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 777
    Points
    17 777
    Par défaut
    La syntaxe $HTTP_USER_AGENT n'est valable uniquement si register_globals est à On (cf phpinfo).

    Il est vivement conseillé d'utiliser la forme $_SERVER['HTTP_USER_AGENT'], la seule qui passera le cap lors de PHP 6 (les directives register_globals et register_long_arrays - spécifique à PHP 5 - n'existant plus).

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    OK !
    Ça date de php4 ou php3...

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Juste pour info, cette variable est envoyée par le navigateur et peut donc être "préchoisie" par l'utilisateur. Ainsi, il peut dire qu'il utilise IE alors qu'il est sous Firefox par exemple. La solution que je suggère est d'utiliser un script Javascript et d'envoyer cette info au serveur pour éventuellement la comparer :
    http://www.developpez.net/forums/showthread.php?t=16306

  5. #5
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    Ton idée est très bonne pour ceux qui veulent prendre en compte beaucoup de navigateurs différents. Je pense que je vais garder le lien.
    Pour ma part, je me contente de faire du compatible Firefox. Parfois, je prends en compte MSIE pour que les utilisateurs de cet engin puissent profiter de mes pages. Mais, j'avoue que la mise en page, ce n'est que pour firefox.
    Le code que j'ai présenté ici est vieux et il est pour une page avec laquelle j'ai fait des tests pour la rendre compatible MSIE alors qu'elle était déjà compatible CSS et XHTML

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Effectivement, mais on est hélas obligé de prendre en compte ce satané navigateur (que de travail suplémentaire, sans déconner...). Je sais que pour moi il est très important que je sache vraiment quel navigateur on utilise; Je prend par exemple mon projet actuel dans lequel il ya des coins arrondis réalisés avec des images PNG et sans code Javascript. J'utilise 2 méthodes complètement différentes selon si il s'agit de IE ou non...

    Ma directive est de réaliser une page web sans utiliser (au départ) Javascript mais en me débrouillant le plus possible avec le HTML, CSS et surtout PHP... puis du Javascript et Flash, mais seulement pour "dynamiser" la page. Ainsi, ceux qui désactive JS / Flash pourront tout de même naviguer. En dernier recours, lorsque JS est indispensable à la navigation, j'ajoute une alerte avec les balises <noscript>. Et pour finir, je vérifie la validité W3C et je teste la page avec tous les navigateurs (les plus courant).

    [EDIT] A propos, il existe une solution HTML pour détecter le navigateur, c'est intérressant je trouve. Par exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <link href="main-style.css" rel="stylesheet" type="text/css">
    <!--[if IE]>
    <link href="ie-style.css" rel="stylesheet" type="text/css">
    <![endif]-->
    Avec tout ça, si vous confondez encore le navigateur du client, c'est qu'il aura vraiment cherché.

    Bonne prog! à+

  7. #7
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    C'est dans quelle norme ?

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219

  9. #9
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    OK !
    Ça shunte les normes html en rajoutant des tests dans les commentaires...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <!--[if !IE]> <-->
       Je te conseille de changer de navigateur !
    <!--> <![endif]-->

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Comme il est dit dans l'article, à utiliser avec modération et surtout avec précaution puisque les autres navigateurs ne le gèrent pas. Par contre, cela peut être nécessaire dans certains projets; Je me souviens d'en avoir eu besoin lors d'un développement de menu déroulant...

  11. #11
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 598
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 598
    Points : 7 837
    Points
    7 837
    Par défaut
    J'ai du aussi m'en servir pour la gestion de menu déroulant moi aussi
    http://geii.univ-lyon1.fr
    http://troumad.org/bible/religion.php (là, c'est en php, je pourrais générer le code en fonction du navigateur : le nombre de sous menu est infini ).

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

Discussions similaires

  1. Même page avec et sans l'extension .php
    Par Pyanepsion dans le forum Langage
    Réponses: 13
    Dernier message: 05/10/2012, 18h11
  2. Réponses: 1
    Dernier message: 08/01/2012, 16h52
  3. php : tableau avec clés sans accent
    Par CapErquy dans le forum Langage
    Réponses: 2
    Dernier message: 13/01/2011, 09h47
  4. Exécuter des requête SQL (avec ou sans PHP) dans javascript
    Par mir540 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/11/2009, 10h03
  5. [EasyPHP] Pb lors de la fermeture de mon application avec ou sans fermeture de Easy Php
    Par Lolie11 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 04/06/2007, 10h38

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