broadcastor Posté 29 Août 2005 Posté 29 Août 2005 Bonjour tout le monde, je voudrais savoir comment on peut insérer du php dans une css. Je suis quasi sur que c'est possible pour lavoir deja rencontré, mais il me semble qu'il faut une petite entete particuliere et je la retrouve pas. merci si vous pouvez m'aider
dièse Posté 29 Août 2005 Posté 29 Août 2005 Place au début de ton fichier .php le header suivant : <?php header("Content-type: text/css"); ?>
fingolfin Posté 29 Août 2005 Posté 29 Août 2005 Euh une questions, sa sert à quoi de mettre du php dans un fichier .css?
Sarc Posté 29 Août 2005 Posté 29 Août 2005 Bah, si tu permets à tes visiteurs de changer leur feuille de style, ou par exemple pour un blog, ça dépendra de chaque blog, etc... Tu prends toutes les infos dans ta bdd, et puis tu crées ta feuille de style avec ces variables pour avoir une feuille de style personnalisée pour chaque blog
TheRec Posté 29 Août 2005 Posté 29 Août 2005 (modifié) Bonsoir, sûrement à générer une feuille PHP à la volée... donc dynmaiquement en fonction par exemple de la personne qui demande la feuille de style, ou simplement d'une variable donnée par l'utilisateur... **EDIT** Ha grillé par sarc... faudra qu'on se fasse un barbecue une fois... Modifié 29 Août 2005 par TheRec
broadcastor Posté 30 Août 2005 Auteur Posté 30 Août 2005 oui cest tout à fait ça, pour info sur le site sur lequel je bosse, je n'ai qu'une css, qui change en fonction de la page ou elle se trouve. si tu veux voir :-)
Anonymus Posté 30 Août 2005 Posté 30 Août 2005 Insérer du php dans une feuille de style, ca n'est pas un problème. Le problème vient du nom de cette feuille. En effet, la plupart des navigateurs (notamment) gardent la feuille de style en mémoire. En gros, ils la chargent une fois, et se servent ensuite de celle qu'ils ont. Si elle change en fonction de la page sur laquelle on se trouve, il se pourrait bien que tu connaisses des problèmes de 'cache' de navigateur, lorsque l'internaute changera de page, mais que le navigateur ne recharge pas la nouvelle feuille de style, car elle aura le même nom que la précédente. Anonymus.
Dudu Posté 31 Août 2005 Posté 31 Août 2005 Même en mettant un bon petit "header("Cache-Control: no-store, no-cache, must-revalidate");" des familles ??
Anonymus Posté 31 Août 2005 Posté 31 Août 2005 Je ne sais pas si un navigateur prendra en compte un header no cache, pour une feuille de style :/ Normalement oui, mais...
Dudu Posté 31 Août 2005 Posté 31 Août 2005 Après une petite recherche, quelques liens disent que oui: http://www.shauninman.com/plete/2005/08/cs...#comment-002196 http://www.fiftyfoureleven.com/sandbox/web...ss-gzip-method/ Le seul problème viendrait d'IE 5 Mac qui a un cache un peu trop puissant: il faut supprimer manuellement le fichier "IE Cache.waf" pour que çà marche 'comme ailleurs'.. Donc normalement, pas de souci
mikhawa Posté 31 Août 2005 Posté 31 Août 2005 une petite question au passage, peut-on passé un paramètre pour une feuille de style? genre monstyle.css?id=24 pour éviter le cache ou est-ce impossible? Merci à+
Boo2M0rs0 Posté 31 Août 2005 Posté 31 Août 2005 Oui c'est fesable Mais il faut que ton hebergement supporte les scripts php dans un fichier finissant en .css sinon tu ne pourra pas récupérer ta variable pour t'en servir.
Commmint Posté 31 Août 2005 Posté 31 Août 2005 pour ma part j'ai installé une CSS dynamique et j'en suis très content. j'appelle les modifs de la sorte avec un argument GET: <link href="styles.php?style=1" rel="stylesheet" type="text/css" /> par contre après, on peut plus modifier la CSS avec un éditeur genre dreamweaver, à convertir donc en PHP à la fin...
broadcastor Posté 31 Août 2005 Auteur Posté 31 Août 2005 Salut, en fait je rencontre effectivement un probleme de cache, que je n'avais pas remarqué avant: mes images mettent un petit temps a s'afficher, et tant que je n'ai pas parcouru les differentes rubriques une fois pour les charger en cache, il y a tjs ce petit delais. J'ai essayé $updated_time = filemtime($_SERVER["DOCUMENT_ROOT"] . "/" . "css.css");$requested_time = strtotime($_SERVER["HTTP_IF_MODIFIED_SINCE"]);_AT_clearstatcache();header("Last-Modified: " . gmdate("D, d M Y H:i:s", $updated_time) . " GMT");header("ETag: " . md5($updated_time));header("Cache-Control: private");header("Content-Type: text/css");if ($updated_time <= $requested_time) { header($_SERVER["SERVER_PROTOCOL"] . " 304 Not Modified"); } trouvé sur le premier site donné par dudu, mais je n'ai pas limpression que ça marche mieux. Et puis sous IE, c'est leclate total, le menu ne saffiche pas du tout, logique pour une page qui passait presque la validation(dailleurs si qelqu'un voit le pb que me donne le validator, je suis preneur pour toutes explications) le site
loufoque Posté 1 Septembre 2005 Posté 1 Septembre 2005 (modifié) Tu devrais utiliser la méthode magique du background-position sur une seule image pour tes rollover, ça éviterait le délai d'apparition de l'image. Ensuite pour tes erreurs, il y en a deux : tu utilises un doctype qui n'existe pas (c'est XHTML 1.0 Strict et pas XHTML 1.0) et tu as un <div> mal fermé semble-t-il. Modifié 1 Septembre 2005 par loufoque
broadcastor Posté 1 Septembre 2005 Auteur Posté 1 Septembre 2005 jai viré le div qui trainait, en revanche pour le doctype je vois pas le pb, cest un copié collé certifié iso9001 que jai fait, mais le probleme subsiste. Pour la methode magique du background-position, ça resoudrait le probleme pour l'affichage du menu, mais je trouve que rament egalement le bandeau du haut, le pied et de page,et tout ce qui est image en fait! merci de ton aide
Dudu Posté 1 Septembre 2005 Posté 1 Septembre 2005 cest un copié collé certifié iso9001 que jai fait, mais le probleme subsiste. ISO 9001 ? Non tu confonds je crois
broadcastor Posté 1 Septembre 2005 Auteur Posté 1 Septembre 2005 si si cetait bien la certif qualité, mais en fait, je lavais modif sans m'en rendre compte, mais en suivant tes conseils, maintenant cest top, je suis valide, ça fait presque aussi plaisir que quand on voit lecran d'installe d'une BSD qui dit que tout va bien...merci Monsieur Dudu en tout cas.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant