Combiner php et css

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Combiner php et css

par Invité » 06 juil. 2005, 20:41

Bon ben boilà, si quelqu'un à une autre méthode, je suis preneur...

Sinon merci à tous ceux qui m'ont aidé ! :D

par Invité » 06 juil. 2005, 20:39

Désolé, effectivement pour alléger mon code, j'ai viré le session_start(); ainsi que la récupération des variables de sessions.

Finalment, ça a fait plus d'embrouilles... :oops:

Mais comme ça n'avais rien à voir avec mon problème, je n'avais pas trop fais gaffe. Ma question était plus une question de fond (comment intégrer du php dans une css) que de syntaxe.

Mais bon je suppose qu'avec certains forumeurs vous devez en voir de toutes les couleurs ;)

par pjl » 06 juil. 2005, 16:37

Effectivement, ce n'est pas ma requête qui pose problème... mais pour satisfaire la curiosité de pjl, la variable $site_accn est une variable de session
Tu ne devrais donc pas l'exploiter sous cette forme $_SESSION['site_accn'] avec un session_start();.
Et là, ma remarque précédente prend tout son sens. :langue:

par bzayid » 06 juil. 2005, 15:43

Effectivement, ce n'est pas ma requête qui pose problème... mais pour satisfaire la curiosité de pjl, la variable $site_accn est une variable de session

par mere-teresa » 06 juil. 2005, 15:13

Je repose ma question. :roll:

Ou la variable $site_accn est-elle initialisée ?
Je parie que c'est un paramètre passé en GET !
Sinon...apparemment, ce n'est pas sa requête qui pose problème, hein pjl !

par pjl » 06 juil. 2005, 15:10

Je repose ma question. :roll:

Ou la variable $site_accn est-elle initialisée ?


PS : privilégie cette syntaxe pour tes requêtes en PHP.
$rq = "SELECT body_color, body_font, body_font_color, contener_border_color, navigation_background_color FROM " . $table_css . " WHERE site_accn='" . $site_accn . "'";
Elle est beaucoup plus claire et t'évitera des PB si tes variables sont des données de tableaux.

par mere-teresa » 06 juil. 2005, 14:48

Bravo de ta persévérance, tu as contourné le problème finalement...mais tu trouveras une fois ton développement fini, ou cette nuit en dormant :wink:

par bzayid » 06 juil. 2005, 13:23

J'ai l'impression que la balise link ne veut que du pur css (sans php)

pourtant les auteurs de PhpMyChat l'utilise
<LINK REL="stylesheet" HREF="<?php echo($ChatPath); ?>config/start_page.css.php3?<?php echo("Charset=${Charset}&medium=${FontSize}&FontName=${FontName}"); ?>" TYPE="text/css">
en plus ils mettent du php dans la css et n'utilise pas la balise <style> (normal puisque l'attribut REL le définit déjà)

Mais je ne comprends pas pourquoi leur façon de faire ne fonctionne pas chez moi...

Merci quand-même pour votre aide (surtout toi mere-theresa)

a+

par bzayid » 06 juil. 2005, 13:16

Ok ça fonctionne de cette façon là:

ne pas faire de link

Code : Tout sélectionner

<link href="css.php" rel="stylesheet" type="text/css" />
dans le code html

mais plutôt un
<? include ("css.php"); ?>
puis la css.php de cette façon (attention de ne pas oublier les balises <style></style>):
<?php
include ("connect.inc");
$table_css="css";
$rq="SELECT body_color, body_font, body_font_color, contener_border_color, navigation_background_color FROM $table_css WHERE site_accn='$site_accn'";
$sq=mysql_query($rq);

while ($ligne=mysql_fetch_array($sq)) {
    $color=$ligne['body_color'];
    $font=$ligne['body_font'];
    $font_color=$ligne['body_font_color'];
    $cont_bdr_color=$ligne['contener_border_color'];
    $nav_bgd_color=$ligne['navigation_background_color'];
}
?>

<style type="text/css">
body {
   font-family: <?php echo $font; ?>;
   font-size: 0.8em;
   color: <?php echo $font_color; ?>;
   background-color: <?php echo $color; ?>;
   margin: 0;
   padding: 0;
}

a:hover {
    color: #CC0000;
    text-decoration: none;
}

#conteneur1 {
    position: absolute;
    width: 90%;
    margin: 20px 35px 35px 35px;
    padding: 15px;
    background-color: #FFFFFF;
}

#conteneur2 {
    width: 98%;
    margin: 5px;
    padding: 0px;
    background-color:#FFFFFF;
    border: 3px solid <?php echo $cont_bdr_color; ?>;
}

#header {
    height: 80px;
    background-color: #FFFFFF;
    text-align: center;
    margin-top: 20px;
}

#haut {
    background-color: <?php echo $nav_bgd_color; ?>;
    border: 1px solid #CEAA18;
    text-align: center;
    margin: 20px 15px 10px 15px;
    height: 25px;
}

#centre {
    background-color:#FFFFFF;
    margin-left: 170px;
    margin-right: 170px;
    text-align: justify;
    padding: 15px;
    margin-top: 27px;
}

#gauche {
    float: left;
    left: 0px;
    margin-top: 20px;
    width: 150px;
    padding: 15px;
}

#incrustationgauche {
    float: left;
    right:0;
    margin-top: 20px;
    width: 150px;
    padding: 15px;
}

#droite {
    float: right;
    right:0;
    margin-top: 20px;
    width: 150px;
    padding: 15px;
    text-align: center;
}

#pied {
    clear: both;
    height: 80px;
    margin-top: 30px;
    background-color: #FFFFFF;
    text-align: center;
}

.menuhaut {
    list-style-type: none;
    margin: 0px;
    padding: 5px;
}

.menuhaut li {
    display: inline;
}

.menuhaut a {
    margin: 0 3px;
    color: #003366;
    font-weight: bold;
    text-decoration: none;
}

.menuhaut a:hover {
    text-decoration: none;
    font-weight: bold;
    color: #CC0000;
}

.header_titre {
    font-weight: bold;
}

.menugauche {
    list-style-type: square;
    margin: 0;
    padding: 0px 10px 0px 15px;
    list-style-image: url(images/fleche.gif);
}

.menugauche_titre {
    font-weight: bold;
    text-decoration: underline;
}

.menugauche li {
    margin-bottom: 5px;
}

.menugauche a {
    margin: 0;
    text-decoration: none;
}

.menugauche a:hover {
    text-decoration: none;
    color: #CC0000;
}

.menucentre_titre {
    font-weight: bold;
    color: #CC0000;
    font-size: 1.3em;
}

p {
    margin: 0 0 15px 0;
}

.gras {
    font-weight: bold;
    margin: 0 0 15px 0;
}

.italique {
    font-style: italic;
    margin: 0 0 15px 0;
}

.tableau {
    text-align: left;
    background-color: #E2E2E2;
    border: 1px solid #CCCCCC;
    margin: 0px 0px 30px 0px;
    vertical-align: top;
    
}
</style>

par bzayid » 06 juil. 2005, 12:41

Code : Tout sélectionner

body { font-family: Geneva, Arial, Helvetica, sans-serif; font-size: 0.8em; color: #003366; background-color: #6D7F91; margin: 0; padding: 0; } a:hover { color: #CC0000; text-decoration: none; } #conteneur1 { position: absolute; width: 90%; margin: 20px 35px 35px 35px; padding: 15px; background-color: #FFFFFF; } #conteneur2 { width: 98%; margin: 5px; padding: 0px; background-color:#FFFFFF; border: 3px solid #CEAA18; } #header { height: 80px; background-color: #FFFFFF; text-align: center; margin-top: 20px; } #haut { background-color: #FFCC00; border: 1px solid #CEAA18; text-align: center; margin: 20px 15px 10px 15px; height: 25px; } #centre { background-color:#FFFFFF; margin-left: 170px; margin-right: 170px; text-align: justify; padding: 15px; margin-top: 27px; } #gauche { float: left; left: 0px; margin-top: 20px; width: 150px; padding: 15px; } #incrustationgauche { float: left; right:0; margin-top: 20px; width: 150px; padding: 15px; } #droite { float: right; right:0; margin-top: 20px; width: 150px; padding: 15px; text-align: center; } #pied { clear: both; height: 80px; margin-top: 30px; background-color: #FFFFFF; text-align: center; } .menuhaut { list-style-type: none; margin: 0px; padding: 5px; } .menuhaut li { display: inline; } .menuhaut a { margin: 0 3px; color: #003366; font-weight: bold; text-decoration: none; } .menuhaut a:hover { text-decoration: none; font-weight: bold; color: #CC0000; } .header_titre { font-weight: bold; } .menugauche { list-style-type: square; margin: 0; padding: 0px 10px 0px 15px; list-style-image: url(images/fleche.gif); } .menugauche_titre { font-weight: bold; text-decoration: underline; } .menugauche li { margin-bottom: 5px; } .menugauche a { margin: 0; text-decoration: none; } .menugauche a:hover { text-decoration: none; color: #CC0000; } .menucentre_titre { font-weight: bold; color: #CC0000; font-size: 1.3em; } p { margin: 0 0 15px 0; } .gras { font-weight: bold; margin: 0 0 15px 0; } .italique { font-style: italic; margin: 0 0 15px 0; } .tableau { text-align: left; background-color: #E2E2E2; border: 1px solid #CCCCCC; margin: 0px 0px 30px 0px; vertical-align: top; }

par mere-teresa » 06 juil. 2005, 12:39

Bon si tu préfères, on n'a pas ta BDD, donc nous on ne peut pas exécuter ton script...alors ta page.php, tu la fais tourner sur ton serveur et tu nous colles le code généré (la CSS que ton code génère) oki ?

par bzayid » 06 juil. 2005, 12:36

qu'est-ce que tu appelles $css ?

Ca?

par mere-teresa » 06 juil. 2005, 12:34

Voici le code de la css:
(supprimer les parties php et remplacer les variables par des valeurs pour la css html)
Ah bah non ! Tes valeurs doivent être générées, quand mm ! Dis donc, c'est pour cela que ça ne fonctionne pas...on veut le contenu de $css pas du PHP qui construit la CSS.

Parce que ce serait un problème de génération de ta CSS si tout marhce en dur mais pas en dynamique !

par bzayid » 06 juil. 2005, 12:30

Voici le code de la page html:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

<head>
<title>TITRE</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<link href="css_html.css" rel="stylesheet" type="text/css" /> //remplacer par css.php pour la css contenant le php
</head>

<body>
<div id="conteneur1"> 
  <div id="conteneur2"> 
    <div id="header"> 
      <p>LOGO</p>
      <p>DESCRIPTION</p>
	  <br />
    </div>
    <div id="haut"> 
      <ul class="menuhaut">
		<li>lien1</li>
		<li>lien2</li>
		<li>lien3</li>
		<li>lien4</li>
		<li>lien5</li>
        <li>lien6</li>
      </ul>
    </div>
    <div id="gauche"></div>
    <div id="incrustationgauche"> <img src="images/scientifique.jpg" alt="scientifique" border="0" width="140px" /> 
    </div>
    <div id="droite"> 
	</div>
    <div id="centre"> 
      <p class="menucentre_titre">TITRE DE LA PAGE</p>
	  <p>TEXTE</p>
	  
    </div>
    <div id="pied"> 
      <p>PIED DE PAGE</p>
    </div>
  </div>
</div>

</body>
Voici le code de la css:
(supprimer les parties php et remplacer les variables par des valeurs pour la css html)
<?php
include ("connect.inc");
$table_css="css";
$rq="SELECT body_color, body_font, body_font_color, contener_border_color, navigation_background_color FROM $table_css WHERE site_accn='$site_accn'";
$sq=mysql_query($rq);

while ($ligne=mysql_fetch_array($sq)) {
    $color=$ligne['body_color'];
    $font=$ligne['body_font'];
    $font_color=$ligne['body_font_color'];
    $cont_bdr_color=$ligne['contener_border_color'];
	$nav_bgd_color=$ligne['navigation_background_color'];
}
?>

body {
   font-family: <?php echo $font; ?>;
   font-size: 0.8em;
   color: <?php echo $font_color; ?>;
   background-color: <?php echo $color; ?>;
   margin: 0;
   padding: 0;
}

a:hover {
	color: #CC0000;
	text-decoration: none;
}

#conteneur1 {
	position: absolute;
	width: 90%;
	margin: 20px 35px 35px 35px;
	padding: 15px;
	background-color: #FFFFFF;
}

#conteneur2 {
	width: 98%;
	margin: 5px;
	padding: 0px;
	background-color:#FFFFFF;
	border: 3px solid <?php echo $cont_bdr_color; ?>;
}

#header {
	height: 80px;
	background-color: #FFFFFF;
	text-align: center;
	margin-top: 20px;
}

#haut {
	background-color: <?php echo $nav_bgd_color; ?>;
	border: 1px solid #CEAA18;
	text-align: center;
	margin: 20px 15px 10px 15px;
	height: 25px;
}

#centre {
	background-color:#FFFFFF;
	margin-left: 170px;
	margin-right: 170px;
	text-align: justify;
	padding: 15px;
	margin-top: 27px;
}

#gauche {
	float: left;
	left: 0px;
	margin-top: 20px;
	width: 150px;
	padding: 15px;
}

#incrustationgauche {
	float: left;
	right:0;
	margin-top: 20px;
	width: 150px;
	padding: 15px;
}

#droite {
	float: right;
	right:0;
	margin-top: 20px;
	width: 150px;
	padding: 15px;
	text-align: center;
}

#pied {
	clear: both;
	height: 80px;
	margin-top: 30px;
	background-color: #FFFFFF;
	text-align: center;
}

.menuhaut {
	list-style-type: none;
	margin: 0px;
	padding: 5px;
}

.menuhaut li {
	display: inline;
}

.menuhaut a {
	margin: 0 3px;
	color: #003366;
	font-weight: bold;
	text-decoration: none;
}

.menuhaut a:hover {
	text-decoration: none;
	font-weight: bold;
	color: #CC0000;
}

.header_titre {
	font-weight: bold;
}

.menugauche {
	list-style-type: square;
	margin: 0;
	padding: 0px 10px 0px 15px;
	list-style-image: url(images/fleche.gif);
}

.menugauche_titre {
	font-weight: bold;
	text-decoration: underline;
}

.menugauche li {
	margin-bottom: 5px;
}

.menugauche a {
	margin: 0;
	text-decoration: none;
}

.menugauche a:hover {
	text-decoration: none;
	color: #CC0000;
}

.menucentre_titre {
	font-weight: bold;
	color: #CC0000;
	font-size: 1.3em;
}

p {
	margin: 0 0 15px 0;
}

.gras {
	font-weight: bold;
	margin: 0 0 15px 0;
}

.italique {
	font-style: italic;
	margin: 0 0 15px 0;
}

.tableau {
	text-align: left;
	background-color: #E2E2E2;
	border: 1px solid #CCCCCC;
	margin: 0px 0px 30px 0px;
	vertical-align: top;
	
}

par mere-teresa » 06 juil. 2005, 12:16

Alors nouvel exercice : puisqu'apparemment tu récupères les bonnes infos dans la BDD, fais un echo de $css (enfin ce que j'ai renommé $css)...
Et colle nous le résultat ici :) et si tu veux qu'on teste en local sur nos machines, mets nous un extrait HTML de ton fichier auquel (ne) s'applique (pas) cette CSS.

Tes propriétés ne sont pourtant pas extraordinaires ou incompatibles MSIE ?