8797 sujets

Développement web côté serveur, CMS

bonjour,
j'ai récupèré un morceau de code en php sur ce site
http://richardathome.no-ip.com/index.php?article_id=106
pour me permettre de tester sur quel navigateur se chargeait les pages et pouvoir ainsi renvoyer des feuilles de style différentes pour IE.
j'étais assez content, pour une fois je comprend le code. il n'est pas sorcier, mais je me dis que je progresse un peu.
enfin jusqu'a un certain point. donc j'ai un fichier php qui me renvoie
nom du fichier css correspondant au browser de l'utilisateur avec la méthode echo.
c'est testé et ça marche en revanche quand j'inclue le lien sur ma page html rien ne se passe. la page me restitue le code ci dessous tel quel
et du coup je n'ai plus du tout de mis en forme.
<link rel='stylesheet' type='text/css' href='<?php include 'inc_css.php' ?>'/>

je crois ce ne doit pas être bien compliquer et que je suis spécialement neuneu sur le sujet Smiley rolleyes
si vous pouvez m'éclairé se seras chouette Smiley smile
Modifié par ndoto (09 Jul 2005 - 00:36)
Salut,
woulala tu veux inclure un fichier complet dans un attribut href... ça risque d'être dur tu crois pas ? Smiley smile
a écrit :
Salut,
woulala tu veux inclure un fichier complet dans un attribut href... ça risque d'être dur tu crois pas ? smile

je te crois et comment est ce que je pour passer le résultat que retourne
le script en php dans ma page html si je pas le faire de cette manière?
C'est quoi ton inc_css.php

Une feuille de style complète j'imagine ?

Tu testes je sais pas quoi dedans ?
Enfin si c'est une feuille de style CSS, n'oublie pas de la déclarer comme telle


header('content-type: text/css; charset=iso-8859-1');

Ensuite, c'est pas un include qu'il faut utiliser mais directement le chemin du fichier

href="inc_css.php"

Je comprend pas trop la difficulté.
ndoto a écrit :
bonjour,
j'ai récupèré un morceau de code en php sur ce site
http://richardathome.no-ip.com/index.php?article_id=106
pour me permettre de tester sur quel navigateur se chargeait les pages et pouvoir ainsi renvoyer des feuilles de style différentes pour IE.


Et si tu oubliais cette très mauvaise idée ?

L'identification du navigateur avec ce type de script :
- est loupée dans pas mal de cas
- nécessite la maintenance régulière du script (nouvelles chaînes d'identification avec de nouvelles versions des navigateurs)
- et pose de nombreux autres problèmes divers

Surtout, pourquoi ne pas faire simple ? Puisque tu as adaptée ta CSS pour IE, tu déplaces tes adaptations dans une CSS spécifique que tu adresses en commentaires conditionnels. C'est fait pour, et c'est sans défaut Smiley cligne
D'ailleurs, pour ma part, j'ai du mal à prendre au sérieux un script d'identification du navigateur dont l'auteur écrit cette superbe sottise :

a écrit :
the user agent string can be easily spoofed or simply not sent. Opera can be configured to pretend to be a whole range of browsers for example


( http://richardathome.no-ip.com/index.php?article_id=106 )

Opera est toujours identifiable en tant que tel lorsque l'utilisateur a choisi l'option "s'identifier comme Mozilla" ou "s'identifier comme IE". Mais pour ça, il faut un peu plus de compétence que n'en a manifestement l'auteur de ce script.

je n'ose pas penser aux autres bourdes probables...
olivier,
le script n'est pas une feuille de style en php ,
le fichier php test le navigateur
et renvoie le nom du fichier css correspondant au navigateur de l'utilisateur.
mais apparement c'est une
a écrit :
très mauvaise idée

et qu'est que tu appelle commentaire conditionnelles?
est ce qu'il s'agit de ce type de code
<!--[if IE 6]>
<link rel="stylesheet" type="text/css" href="ie.css" />
<![endif]-->
Donc pour répondre à ta question, il faudrait définir une variable par exemple $css qui prend telle ou telle valeur en fonction du test la dite valeur étant l'url qui convient et de faire un petit <?php print $css; ?> dans le href, mais comme te l'explique Laurent tu te bases sur un truc pas fiable.

C'est bien de ça que te parle Laurent, mais là c'est pour IE6 Smiley cligne
Oui, en te contentant de viser "les" IE quelque-soit leur version :


<link rel="stylesheet" type="text/css" href="css-normale.css" media="screen" />
<!--[if IE]>
<link rel="stylesheet" type="text/css" href="correctif-ie.css" media="screen" />
<![endif]-->


attention : cette CSS ne doit contenir que les règles propres à IE, car elle s'exécutera avec ta CSS "normale" et la modifiera.
merci à tous les deux, pour vos réponse. Smiley smile
j'ai spécialement aimé le
a écrit :
attention : cette CSS ne doit contenir que les règles propres à IE, car elle s'exécutera avec ta CSS "normale" et la modifiera.
je m'étais fait deux feuilles de styles bien différentes
une fois les trucs en place sur firefox, j'avais regardé ce qui se passais sous ie et corrigé des trucs. et donc avec cette délicieuse méthode conforme bonne et tout, j'ai passé la journée d'aujourd'hui à recaler textes et blocs . j'aime.
bon je crois que je vais m'acheter un livre sur les CSS Smiley murf je gagnerais du temps une prochaine fois.
ps: avec Internet on crois que tout est à porté de click mais en vrai on se retrouve vite, tournant en rond.
c'est bon de d'avoir des endroits comme alsacréation ou on est sur de trouver des gens compétents. bon je m'arrête là je voudrais pas non plus en faire trop. mais on est bien ici. Smiley cligne
ndoto a écrit :
et donc avec cette délicieuse méthode conforme bonne et tout, j'ai passé la journée d'aujourd'hui à recaler textes et blocs . j'aime.


C'est assez amusant, parfois, l'apprentissage CSS Smiley cligne

Mais tu y a acquis une méthode qui te fera regagner sur tes prochains design le temps perdu aujourd'hui Smiley ravi