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 :

Utiliser une feuille de style selon le navigateur


Sujet :

Langage PHP

  1. #1
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut Utiliser une feuille de style selon le navigateur
    Bonjour,

    Pour mon site j'utilise du php et du css. Seulement Firefox et Internet Explorer ne reproduise pas à l'identique le design css. C'est pourquoi je voulais me faire un script utilisant une feuille de style pour chaque navigateur, j'ai fais ce script:

    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
    <html>
    <head>
    	<title></title>
    	<?
    		$navigateur = '$_SERVER['HTTP_USER_AGENT']'
    		if ($navigateur == Microsoft Internet Explorer)
    			{
    				<link href="/forme/style.css" rel="stylesheet" type="text/css">
    			}
    		else
    			{
    				if ($navigateur == Mozilla Firefox)
    					{
    						<link href="/forme/styleMF.css" rel="stylesheet" type="text/css">
    					}	
    			}
    	?>
    </head>
     
    <body>
    A savoir que ce fichier est mon fichier header donc il est normal qu'il soit incomplet, cependant lorsque je test...c'est page blanche

    Quelqu'un peut m'aider svp ?

  2. #2
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    J'ai essayé ça aussi:

    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
    <html>
    <head>
    	<title></title>
    	<?
    		$navigateur = '$_SERVER['HTTP_USER_AGENT']';
    		if ($navigateur == "Microsoft Internet Explorer")
    			{
    				$style = "/forme/style.css";
    			}
    		else
    			{
    				if ($navigateur == "Mozilla Firefox")
    					{
    						$style = "/forme/style2.css";
    					}	
    			}
    	?>
    	<link href="$style" rel="stylesheet" type="text/css">
    </head>
     
    <body>
    ...sans succès

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Salut

    Est-ce que le fait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="$style" rel="stylesheet" type="text/css">
    soit en dehors des balises php est normal ?

    Et l'absence de echo aussi ?

  4. #4
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par gibigue
    Salut

    Est-ce que le fait que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <link href="$style" rel="stylesheet" type="text/css">
    soit en dehors des balises php est normal ?

    Et l'absence de echo aussi ?
    Version mauvaise foi: "oui oui c'est normal c'est un nouveau style"
    Version honnète: "oups me suis planté"

    Ca donne ça:

    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
    <html>
    <head>
    	<title></title>
    	<?
    		$navigateur = '$_SERVER['HTTP_USER_AGENT']';
    		if ($navigateur == "Microsoft Internet Explorer")
    			{
    				$style = "/forme/style.css";
    			}
    		else
    			{
    				if ($navigateur == "Mozilla Firefox")
    					{
    						$style = "/forme/style2.css";
    					}	
    			}
    		echo "<link href="$style" rel="stylesheet" type="text/css">";
    	?>
    </head>
     
    <body>
    Mais ça marche toujours pas, ça n'affiche rien, page blanche, une idée svp ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Regarde ce que contient $_SERVER['HTTP_USER_AGENT'] je ne pense pas qu'elle contienne exactemet "MS internet explorer" ou "Mozilla Firefox" tes conditions ne sont jamais vraies.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Septembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2002
    Messages : 22
    Points : 24
    Points
    24
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<link href="$style" rel="stylesheet" type="text/css">";
    C'est louche. Proposition de syntaxe correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<link href="'.$style.'" rel="stylesheet" type="text/css">';
    et d'accord avec gibique.

  7. #7
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par MmoulinexX
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "<link href="$style" rel="stylesheet" type="text/css">";
    C'est louche. Proposition de syntaxe correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<link href="'.$style.'" rel="stylesheet" type="text/css">';
    et d'accord avec gibique.
    J'ai vérifié j'ai modifié par ça:

    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
    <?
    		$navigateur = '$_SERVER['HTTP_USER_AGENT']';
    		if ($navigateur == "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4")
    			{
    				$style = "/forme/style.css";
    			}
    		else
    			{
    				if ($navigateur == "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)")
    					{
    						$style = "/forme/style2.css";
    					}
    			}
    		echo '<link href="'.$style.'" rel="stylesheet" type="text/css">';
    	?>
    Mais ça marche toujours pas, pourtant j'ai vérifié le contenu

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Tu n'a pas à vérifier toute la chaine. Tu ne pourras jamais traiter tous les cas possibles. Les utilisateurs de 1.5.0.3 et < qu'en fais-tu ? Et ceux qui n'utilisent pas Windows XP ? Sans parler des personnes qui utilises Opera, Konqueror, Safari...
    Ne vérifie qu'une partie de $_SERVER['HTTP_USER_AGENT'].
    Tu aurais déjà un cas un peu plus général, par exemple, en cherchant la sous-chaine Firefox, MSIE et propose un cas par défaut en cas d'echec.

  9. #9
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par gibigue
    Tu n'a pas à vérifier toute la chaine. Tu ne pourras jamais traiter tous les cas possibles. Les utilisateurs de 1.5.0.3 et < qu'en fais-tu ? Et ceux qui n'utilisent pas Windows XP ? Sans parler des personnes qui utilises Opera, Konqueror, Safari...
    Ne vérifie qu'une partie de $_SERVER['HTTP_USER_AGENT'].
    Tu aurais déjà un cas un peu plus général, par exemple, en cherchant la sous-chaine Firefox, MSIE et propose un cas par défaut en cas d'echec.
    Oui mais ce n'est qu'un test pour l'instant, ce sont exactement les caractéristiques de mon navigateur donc il y a un problème dans mon script puisque ça n'affiche rien mais je regarde là pour extraire la chaine

  10. #10
    Nouveau membre du Club
    Inscrit en
    Juin 2005
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 35
    Points : 37
    Points
    37
    Par défaut
    Je suis déjà surpris que cette ligne ne te renvoi aucune erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $navigateur = '$_SERVER['HTTP_USER_AGENT']';
    J'enleverrai les guillemets simples. C'est une notion basique. Les variables contenues dans les simple quotes ne sont par interprétées.

  11. #11
    Membre régulier Avatar de Jiraiya42
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    671
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 671
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par gibigue
    Je suis déjà surpris que cette ligne ne te renvoi aucune erreur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $navigateur = '$_SERVER['HTTP_USER_AGENT']';
    J'enleverrai les guillemets simples. C'est une notion basique. Les variables contenues dans les simple quotes ne sont par interprétées.
    J'ai mis ça:

    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
    <html>
    <head>
    	<title></title>
     
    	<?
    		$navigateur = substr('$_SERVER['HTTP_USER_AGENT']', 1, 7);
    		if ($navigateur == "Mozilla")
    			{
    				$style = "/forme/style.css";
    			}
    		else
    			{
    				if ($navigateur == "MSIE   ")
    					{
    						$style = "/forme/style2.css";
    					}
    			}
    		echo '<link href="'.$style.'" rel="stylesheet" type="text/css">';
    	?>
     
     
    </head>
     
    <body>
    Mais ça n'affiche rien, rien du tout, pas de mess une page blanche

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    il faut coder ceci pour recupérer Mozilla
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $navigateur = substr($_SERVER['HTTP_USER_AGENT'], 0, 7);
    il faut coder ceci pour recupérer Mozilla.
    -> donne Mozilla avec firefox ey ie

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Février 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Février 2006
    Messages : 134
    Points : 81
    Points
    81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $navigateur = $_SERVER['HTTP_USER_AGENT'] ."<br>";
    	if(ereg("Firefox",$navigateur)) 
               echo "oui";
           else
     echo "non";

Discussions similaires

  1. Réponses: 0
    Dernier message: 28/01/2013, 10h11
  2. Comment avoir une feuille de style correcte pour les navigateurs ?
    Par Kitetkat dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 14/04/2012, 16h26
  3. Xalan c++ : forcer l'utilisation d'une feuille de style
    Par mbibim63 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 27/08/2008, 10h31
  4. Feuille de style selon le navigateur
    Par Jiraiya42 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/09/2007, 20h36
  5. Comment utiliser une feuille de style dans Frontpage 2003 ?
    Par fmd92 dans le forum Mise en page CSS
    Réponses: 5
    Dernier message: 16/11/2006, 20h03

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