8796 sujets

Développement web côté serveur, CMS

bonjour,

j'ai un back office ou je rempli des champs pour ma feuille css,
ma base est bien alimenté.

j'appelle la feuille css sur un page en php avec l'instruction:

echo"<link href=\"../styles_ie.php\" rel=\"stylesheet\" type=\"text/css\" media=\"screen\">";


mon fichier styles_ie.php est de cette forme:


<?php 
header('Content-type: text/css');  
header('HTTP/1.0 304 Not Modified');
include ('admin/connect.php');

		$query="select * from "matable";
		$result=mysql_query($query);
		$o=mysql_fetch_object($result);
		$lien_color=$o->lien_color;

?>


lien {
	text-decoration: none;
	color: #<? echo $lien_color; ?>;
	font-size: 12px;
	font-family: Arial;
	font-weight: bold;
}


et donc avec tout cela, ma feuille de stype n'est pas reconnu, j'ai bien verifié le chemin d'appel et tout, rajouté la balise header('Content-type: text/css');
donc je ne sais plus trop ou ce situe le probleme,

si qqun à un idée , merci d'avance pour vos reponses
Modifié par corsichris (12 Apr 2010 - 11:23)
Salut,

d'abord,

lien ne correspondant a aucune balise html. il devrait y avoir un . (si c'est une classe ) ou un # (si c'est un id) devant


sinon t'as verifié si la page de test appelait le css?

ce qui peut se voir facilement avec le plugin firefox "web developer". une fois installer aller
dans CSS->voir les CSS pour voir quel CSS une page appelent.

de plus tu peux aller sur un lien appelant directement ton styles_ie.php et déjà verifier que le code CSS c'est bien construit a partir de tes requetes?
Modifié par CPascal (12 Apr 2010 - 11:35)
merci de ta reponse,

j'ai donc rajouté le . devant lien, cela ne fonctionne tjs pas,

j'ai donc telecherger web developper sur firefox,
et en fait la feuille styles_ie.php est appellé, et les css n'apparaissent pas.
surement alors la structure fichier css style_ie.php qui ne vas pas:


<?php 
header('Content-type: text/css');  
header('HTTP/1.0 304 Not Modified');
include ('admin/connect.php');

		$query="select * from "matable";
		$result=mysql_query($query);
		$o=mysql_fetch_object($result);
		$lien_color=$o->lien_color;

?>


.lien {
	text-decoration: none;
	color: #<? echo $lien_color; ?>;
	font-size: 12px;
	font-family: Arial;
	font-weight: bold;
}


une piste???
Modifié par corsichris (12 Apr 2010 - 16:27)
ton link est dans le header ( entre les balises <head></head ) de ta page?

tu n'as pas de doublon de ses balises?
oui mais il n'y a rien de special sur la page,juste le link entre les balises <head>, cela fonctionnais avant en css; avant que je veuille passer la page en php.

çà pourrait venir de la config du serveur?
Modifié par corsichris (12 Apr 2010 - 16:58)
ça me permettrais de tester de voir le html et peut-être de comprendre.

quoiqu'il en soit j'ai déjà vu des gens utiliser php pour faire du css.

c'est possible, mais peut-être pas facile.

pour le serveur je ne crois pas....
mais faut voir au niveau de la prise en compte des extensions

bon courage.
Modifié par CPascal (12 Apr 2010 - 17:02)
Re salut,

j'ai fais quelques tests avec mon propre fichier html.

voici les conclusions.

-comme je le savais déjà c'est possible
-il ne faut pas mettre header('HTTP/1.0 304 Not Modified'); ça me marche pas avec.
-chez moi les short tag ne sont pas acceptés niveau apache du coup mettre <? est insuffisant.
-il peut y avoir des soucis de cache avec du CSS géré ainsi. tu fais une erreur le code est faux. mais le vieux css est toujours en cache donc tu vois pas de changement.

@+ Pascal
Modifié par CPascal (12 Apr 2010 - 18:06)
Hello,

Mettre un header 304 sur un fichier qui va chercher des informations dans la base de données à chaque connection c'est un peu contre-productif. Le header 304 indique à ton navigateur que le contenu du fichier n'a pas changé depuis la dernière fois qu'il l'a chargé, il va donc utiliser la version qu'il a en cache, pas celle à jour que tu génère.

Essaie avec un code 200 OK plutot.

Ensuite, niveau performances, refaire une connection + requete sur chaque chargement de feuille de style, donc sur chaque page, juste pour récupérer une valeur de couleur c'est un peu beaucoup. Si tu a déjà une connection active à ta base de donnée dans le code html/php, pourquoi ne pas récupérer la couleur à ce moment là et simplement la passer en parametere à ton fichier php lors de l'appel CSS ?
bonjour,

merci de vos reponses,

effectivement c'etait le code 'HTTP/1.0 304 Not Modified' qui posait probleme,
je ne voyais pas les modifications éffectués.

tout fonctionne correctement, les valeurs sont bien recupérées,
en fait j'ai une trentaine de valeurs de couleurs css à recuperer,
donc j'avais pensé a ce systeme de page css dynamique,
donc c'est mieux de plutot d'appeller directement les css sur la page en php pricipale??
et pour le header 304 j'avais lu sur un tutorial que c'etait interessant pour pas recharger à chaque fois les valeurs,
avec header 200 çà donne quoi en fait???

merci d'avance