Problème de commentaires conditionnels.

Petit nouveau ! | 6 Messages

10 juin 2013, 09:49

Bonjour,

Actuellement, je suis en stage dans une société qui fait des sites internet. Le gérant m'a demandé d'optimiser son site le plus possible pour IE.
Comme je ne suis pas très bon en PHP, j'ai pris les codes des pages en HTML et leur ai affecté la feuille de style, ce qui marchait plutôt bien...
J'ai deux feuilles de style: l'une, style.css qui est normalement pour tous les navigateurs (sauf IE) et ie6.css pour IE. Sur style.css, il propose un fond
avec un effet de lumière. Sur ie6, je dois avoir le même fond, mais sans l'effet de lumière.


Le problème, en effet, c'est qu'à partir du moment ou je ne génère que des pages HTML, le site ne sera plus dynamique, mais statique.
Du coup, je me suis renseigné un peu en faisant des recherches, et j'y ai trouvé les commentaires conditionnels.
Du coup j'ai essayé de le mettre dans le fichier php dans le <head></head>:
<!--[if IE 9]>
  <link href="../css/ie6.css" rel="stylesheet" type="text/css">
  <![endif]-->
et ça ne marche pas. La page charge normalement sur Chrome mais sur IE, il m'enlève le fond.

Si j'enlève le commentaire conditionnel (toujours dans le head du php):
<link href="../css/ie6.css" rel="stylesheet" type="text/css">
Sur IE, il me met le fond sans effet de lumière, là tout va bien. Mais il m'affiche pareil pour Chrome, du coup, je n'ai plus
l'effet de lumière sur Chrome.

Je voudrais bien avoir de l'aide s'il vous plaît. Merci d'avance!

PS: Désolé pour le pseudo qui montre que J'ai du mal avec PHP, mais c'est le seul truc qui va pas, je me débrouille en HTML5, CSS3, mais PHP, je digère pas trop.

Eléphant du PHP | 160 Messages

10 juin 2013, 10:13

Bonjour,

Je suis loin d'être bon mais je veux bien chercher avec toi en attendant que quelqu'un de plus compétant te réponde :)

Si en lieux et places de
<!--[if IE 9]>
  <link href="../css/ie6.css" rel="stylesheet" type="text/css">
  <![endif]-->
Tu met
<? if(IE 9){
  echo '<link href="../css/ie6.css" rel="stylesheet" type="text/css">';
} ?>
Qu'est ce que ça dit ? :p

Petit nouveau ! | 6 Messages

10 juin 2013, 10:20

Il m'affiche ceci.


Image
Image


Merci quand même de ton aide!

Eléphant du PHP | 160 Messages

10 juin 2013, 10:28

hummm, il résiste...

et avec
<? if(IE 9){
  echo '<link href=\"../css/ie6.css\" rel=\"stylesheet\" type=\"text/css\">';
} ?>
(remarque les \ devant les " )

Petit nouveau ! | 6 Messages

10 juin 2013, 10:40

J'ai essayé et ça remarche pour Chrome mais toujours pas pour IE. Je n'ai toujours pas le fond...

(J'ai enlevé le 9, parce que l'espace entre IE et 9 affichait un message d'erreur sur le navigateur.)

Mammouth du PHP | 1966 Messages

10 juin 2013, 10:44

Il faut que php retourne du code html valide

ce que tu veux placer dans le code html, doit etre dans un echo
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphant du PHP | 160 Messages

10 juin 2013, 10:47

Bonjour Spols

C'est pas ce qu'on fait avec
 echo '<link href=\"../css/ie6.css\" rel=\"stylesheet\" type=\"text/css\">';
:p

Enfin y a t-il des erreurs ?

Sinon j'ai trouvé ça si ça peut aider :)
<HEAD><?php 
  
//on test si le navigateur est ie  
if (stripos($_SERVER['HTTP_USER_AGENT'], "msie"))  
{  

//on test si le navigateur est ie6 ou une version anterieure (oula xD)  
if (intval(substr($_SERVER['HTTP_USER_AGENT'], stripos($_SERVER['HTTP_USER_AGENT'], "msie")+5)) > 6)  
{  
echo "<link rel=\"stylesheet\" media=\"screen\" type=\"text/css\" title=\"Design\" href=\"ie6.css\" />".PHP_EOL;  
}  
else   //sinon on charge le css pour les versions 7 ou plus de ie  
{  
echo "<link rel=\"stylesheet\" media=\"screen\" type=\"text/css\" title=\"Design\" href=\"ie.css\" />".PHP_EOL;  
}  

}  
else   //sinon on charge le css pour les autres navigateurs moins chi**** que ie  
{  
echo "<link rel=\"stylesheet\" media=\"screen\" type=\"text/css\" title=\"Design\" href=\"style.css\" />".PHP_EOL;  
} 

?></HEAD>
À adapter bien sur ;)
Modifié en dernier par Lyssorus le 10 juin 2013, 10:49, modifié 1 fois.

Petit nouveau ! | 6 Messages

10 juin 2013, 10:48

Spols > Oui, c'est ce que je viens de me rappeler. Mais j'y arrive pas..

Lyssorus >
Fatal error: Call to undefined function: stripos() in /homez.306/studiomeg/www/micka/photographie/index.php on line 10
Il est coriace.. Pourtant je suis sur qu'il faut une simple ligne de rien.

Eléphant du PHP | 160 Messages

10 juin 2013, 11:36

Et ça qu'est ce qu'il en dit Dora l'Explorateur :p

[javascript]


<script language="JavaScript">
if((navigator.appName.indexOf("Explorer") >= 0)
&& (navigator.appVersion.indexOf('9')>=0 ))
{
document.writeln('<link href=\"../css/ie6.css\" rel=\"stylesheet\" type=\"text/css\">');
}

</script>

[/javascript]

Mammouth du PHP | 1966 Messages

10 juin 2013, 11:40

Je préconise plutôt de laisser gérer cela par le navigateur plutôt que par le serveur

avec des commentaires conditionnels
http://www.alsacreations.com/astuce/lir ... nnels.html
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 6 Messages

10 juin 2013, 11:44

Toujours la même chose.. Chrome marche mais pas IE. Après, ce que je me suis dit, c'est que l'erreur pourrait venir de la feuille de style... Meme si elle parait normale.
/* IE6 specific styles */
/*-------------RESET CSS-------------*/
html, body, address, blockquote, div, dl, form, h1, h2, h3, h4, h5, h6, ol, p, pre, 
table, ul, dd, dt, li, tbody, td, tfoot, th, thead, tr, button, del, ins, map, object, 
a, abbr, acronym, b, big, br, cite, code, dfn, em, i, img, kbd, q, samp, small, span,
strong, sub, sup, tt, var, legend, fieldset {
	margin: 0; 
	padding: 0;
}
	
img, fieldset {
	border: 0;
}
	/* Réinitialiser avec le html5*/}

body{
	background-color: #242424;
  	color: #000000;
}

.main-box{
  background-color: #FFFFFF;
  width: 1000px;
  color: #666;
  font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;	
	font-size: 16px;
}  

h4 {
	font-size:30px;
	font-weight:normal;
	color:#212222;
	font-family: Comic Sans Ms;
	
}

Eléphant du PHP | 160 Messages

10 juin 2013, 11:52

Ouaip c'était ce qui était fait au début mais ça pas marche :p

Après oui peut être que ça vient du CSS en lui même :/

La par contre, je ne vois rien de spécial dans ton CSS qui me choque, en même temps à part une faute flagrante lol, je ne verrais rien ^^'

Et ton lien est bien le bon ? revenir d'un cran puis aller dans css ? (bon j'dis ça comme ça :p)

Petit nouveau ! | 6 Messages

10 juin 2013, 11:54

Tu vois une faute dans mon CSS?

Normalement tout est bon!

Eléphant du PHP | 160 Messages

10 juin 2013, 12:01

Non non, je dis que s'il y avait une faute je ne la verrais pas ^^'

Mais dans la syntaxe, rien ne me choque...

Je ne sais pas de quoi ça vient :/

Eléphant du PHP | 160 Messages

10 juin 2013, 12:05

Et en faisant déjà juste un :
<!--[if IE]>
  <link href="../css/ie6.css" rel="stylesheet" type="text/css" />
  <![endif]-->