[css][php] variable php dans css

Mammouth du PHP | 1311 Messages

12 févr. 2005, 18:25

salut
je me pose la question peut on modifie des proprité dans une feuille de style via php (et autre type de fichier)
en fait faire une feuille de style dynamique
j'ai deja des element de reponse mais ce n'est pas tres clair
est ce que un fichier fichier.css.php suffit ou
comme le suggere Xenon bien parametrer php?? :?
:
merci de vos reponse

Mammouth du PHP | 1885 Messages

12 févr. 2005, 19:20

Dans un .htaccess
Ceci permet d'ajouter les fichiers .css dans la liste des fichiers à interpréter en PHP

Code : Tout sélectionner

AddHandler application/x-httpd-php .css
Dans ton .css (en entête)
Ceci permet d'être certain que le fichier sera transmis en tant que CSS pour tous les navigateurs.
<?php header('Content-type: text/css'); ?>
Maintenant à toi d'inclure les variables :)
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

Mammouth du PHP | 1311 Messages

12 févr. 2005, 19:22

merci
ce poste vaut de l'or 8)

Eléphant du PHP | 67 Messages

18 févr. 2005, 12:40

On peut aussi utiliser la methode suivante qui est bcp plus simple a mon avis ...

Dans ta page Html qui appel ta feuille de style tu met :

Code : Tout sélectionner

<link rel="stylesheet" href="stylesheet.PHP" type="text/css">
Il te suffit ensuite dans ta page stylesheet.php de gérer tes CSS comme n'importe quelle page PHP. Ca marche aussi avec les page JS etc.

Edit :La declaration directe via Htacess a de plus un inconvéniant dans ce cas particulier ! Toutes les pages CSS seront interprétées par PHP ce qui n'est pas forcément l'effet recherché.

++

Eléphant du PHP | 67 Messages

18 févr. 2005, 14:32

Edit :La declaration directe via Htacess a de plus un inconvéniant dans ce cas particulier ! Toutes les pages CSS seront interprétées par PHP ce qui n'est pas forcément l'effet recherché.
Pas si tu mets le .htaccess dans un sous répertoire (qui contient tes feuilles de style).

Ceci dit moi je fais comme toi, mais je devrais plus exploiter les innombrables possibilités d'Apache...

Eléphanteau du PHP | 31 Messages

08 nov. 2006, 15:20

Bonjour,
J'ai fait comme indiqué, j'ai transformé l'extension de mon .css en .php et j'ai mis des variables php dans ma feuille de style, genre :

Code : Tout sélectionner

body { background-color: <?php echo $backcolor; ?>; }
et j'ai appelé le fichier dans le head par :

Code : Tout sélectionner

<link rel="stylesheet" href="../includes/styles.php" type="text/css">
mais ça ne fonctionne pas et les variables ne sont pas lues... :? J'ai essayé en ajoutant les balises <style></style> en début et fin mais rien à faire... d'où vient mon erreur svp ?
Merci,
Caro[/quote]

Eléphant du PHP | 193 Messages

08 nov. 2006, 15:27

Comme dit plus haut, mets ça en première ligne du fichier de style en php
<?php header('Content-type: text/css'); ?> 

Eléphanteau du PHP | 38 Messages

08 nov. 2006, 15:28

A mon avis ton fichier style.php ne connait tout simplement pas les variables que tu lui demandes d'interpreter.

Tu dois donc les lui transmettre, soit par session, soit par formulaire.

M'enfin j'dis ca, j'dis rien.

Eléphanteau du PHP | 31 Messages

08 nov. 2006, 15:32

... pourtant ces variables sont définies dans mon fichier config qui est lu correctement... :?:

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 nov. 2006, 15:36

Et ton fichier config est inclu dans ta page de style en .php ?

L'appel à la feuille de style ne se fait pas par php mais par le navigateur.. les variables qui ont servi à généré le code html ne sont donc pas transmises à ton css, qui est appellé par le navigateur une fois la page chargée :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Eléphanteau du PHP | 31 Messages

08 nov. 2006, 15:57

Effectivement, je n'avais pas appelé le fichier config dans la feuille de style / php. C'est maintenant fait et quand j'ouvre le fichier style, il indique bien les valeurs. J'ai bien :

Code : Tout sélectionner

body { background-color: #E5E2B7; ... }
Par contre, la feuille ne s'applique toujours pas à la page...:s
Une autre idée peut-être ? Est-ce que ça ne vient pas de cette formule : <link rel="stylesheet" href="../includes/styles.php" type="text/css"> Ne faut-il pas écrire un truc du genre type="text/css/php" ?