Php et Style CSS
Bonjour à tous et meilleurs voeux pour cette nouvelle année !
j'ai un soucis de style css, j'ai un choix possible avec plusieurs couleur pour l'affichage du site qui fonctionne parfaitement avec mes pages à la racine du site, mais quand je veux mettre d'autres pages à afficher dans des dossiers, tout foire ...
voici le code utilisé pour les pages à la racine du site :
<?php// On vérifie que le formulaire a été soumis{{// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite// Si le fichier *.css existe on définit une variable $css correspondant au style choisi$css = $_POST['style'] ;}}// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style{$css = $_COOKIE['style'] ;}else// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple{$css = "bleu" ;}?>
et dans le HEAD :
<?phpecho "<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"".$css."/style.css\" />\n" ;?>
ensuite les pages se trouve dans des sous dossiers en fait ex: /truc/machin/page.php j'ai donc modifier le code de la façon suivante dans le HEAD:
<?phpecho "<link rel=\"stylesheet\" type=\"text/css\" media=\"screen\" href=\"../..".$css."/style.css\" />\n" ;?>
Ca fonctionne en affichage par défaut, mais si on veux changer la couleur a partir de cette page .. plus rien .. j'ai aussi essayer de modifier ce bout de code en mettant :
{{
pour remonter les sous dossiers mais ça ne change rien. après plusieurs tests je me suis apercu que la valeur $css n'est pas récupérée, donc le chemin vers le fichier style est éronée et ne fonctionne pas, mais je n'ai toujours pas trouver pourquoi. avec une page a la racine qui fonctionne en affichant le code source j'obtient ceci :
<link rel="stylesheet" type="text/css" media="screen" href="bleu/style.css" />
et le style s'affiche quelque soit la couleur choisie. mais avec mes pages dans les sous dossiers j'obtient ceci :
<link rel="stylesheet" type="text/css" media="screen" href="/style.css" />
la variable $css n'est pas recupérée. Merci d'avande pour votre aide.
Réponses apportées à cette discussion
Bonjour,
Ton problème est super simple à résoudre. Il te suffit d'utiliser des chemins absolus dans tes balises <link>. Donc par exemple, tu mets le chemin suivant : http://www.tondomaine.com/css/lestyle/style.css
Par contre, je vois que tu places directement $_POST['style'] dans la chaine et que tu récupères la valeur présente dans le cookie sans les filtrer... Tu ouvres une faille par injection de code HTML ou Javascript... Pense à les echapper avec htmlspecialchars().
++
en fait je ne peut pas utiliser ce système car mes fichier CSS son dans des rep différents, c'est pour ca que j'ai besoin de récupérer la variable $css pour lui indiquer dans quel répertoire il doit aller chercher son fichier par rapport au choix du visiteur. je sais pas si c assez clair lol ... demandez moi si besoin j'éclaircirais :)
Je vous remercie pour votre aide, j'ai reussi à résoudre mon soucis :)
