site multi couleurs en PHP

Répondre
Forrest
le 13/04/2010 à 02:23
Forrest
Bonsoir, j'ai suivi vos conseils sur "comment faire..."

J'ai pb que je n'arrive pas à résoudre.
Je voudrais pouvoir changer le design d'un site, j'ai appliqué votre code, mais je ne récupère pas les infos.
Le code :

Fichier design.php
<?php 
// on teste si le cookie est declare (si il n'est pas déclaré, on applique la couleur par défaut)

if (!isset($_COOKIE['DESIGN'])) {
$background = "#FAE8CF";
$menuHaut = "imagesEden/menuhaut.jpg";
}
else {
// cas où le site sera ocre
if ($_COOKIE['DESIGN'] == "Ocre") {
$background = "#FAE8CF";
$menuHaut = "imagesEden/menuhaut.jpg";
}
// cas où le site sera gris (imagesCoquelicot)
elseif ($_COOKIE['DESIGN'] == "Gris") {
$background = "#e8e3e2";
$menuHaut = "imagesCoquelicot/menuhaut.jpg";
}
// cas où le visiteur n'a pas choisi de couleur (on affiche alors une par défaut)
else {
$background = "#FAE8CF";
$menuHaut = "imagesEden/menuhaut.jpg";
}
}
?>


Le fichier send_design.php
<?php 
// on inclut toujours notre fichier de design

include '../include/design.php';

$expire=365*24*3600;
// on envoie notre cookie
setcookie ("DESIGN", $_POST['couleur'], time() + $expire);
?>
<html>
<head>
<title>Changement de couleur</title>
</head>

<?php
// on utilise les variables du fichier design.php pour pouvoir afficher les bonnes couleurs suivant la couleur du cookie (ou bien la couleur par défaut si le cookie n'existe pas)
echo '<body bgcolor = "',$background,'">';
echo '<img src = "../',$menuHaut,'">';
?>
<br /><br />
Vous avez choisi un site de couleur :
<?php
echo $_POST['couleur'];
?>
<br />
<!-- on affiche notre formulaire permettant de revenir à l'accueil du site -->
<form action = "../index.php" method = "post">
<input type = "submit" value = "Retour accueil">
</form>

</body>
</html>


Le formulaire pour choisir la couleur :
<div align="center"> 
<form action = "fichiersIndex/send_design.php" method = "post">
<select name = "couleur" class="formulScs">
<option>Couleur du site</option>
<option>Ocre</option>
<option>Gris</option>
</select>
<input type = "submit" value = "Modifier" class="formulScs">
</form>
</div>


Un des codes sur le fichier index.php (avec l'inlude du fichier design.php au début)
exemple : <td height="34" background="<?php echo $menuHaut; ?>" > ce code affiche bien la couleur par défaut, ce que je n'arrive pas à réaliser c'est de changer la couleur.

Y a t-il une raison particulière, ou connaissez-vous une autre façon de faire.

Merci.

Jean-Pierre
Jean-Pierre
moogli
le 13/04/2010 à 09:53
moogli
salut,

le déroulement de ton code fait que tu ne pourras jamais avoir le changement à la validation du formulaire. Pourquoi ?

simplement parce que tu cherche s'il y a un cookie, oui ou non tu sélectionne le design, PUIS seulement tu envoie le cookie.
le problème c'est que tu choisis le design en fonction du cookie.

Le mieux est de faire le include design et le set cookie avant le choix du design.

le mieux serais de simplement de faire un choix de css comme sur http://csszengarden.com/ ;)

code que j'ai testé (j'ai tout mis dans le même fichier).

<?php 
/*var_dump($_POST);*/
var_dump($_COOKIE);
// on teste si le cookie est declare (si il n'est pas déclaré, on applique la couleur par défaut)

if (!isset($_COOKIE['DESIGN'])) {
$background = "#FAE8CF";
$menuHaut = 'WhiteClean/images/pic.jpg';/*"imagesEden/menuhaut.jpg"; */
}
else {
// cas où le site sera ocre
if ($_COOKIE['DESIGN'] == "Ocre") {
$background = "#FAE8CF";
$menuHaut = 'fond-fleursBlanches.jpg';/*"imagesEden/menuhaut.jpg"; */
}
// cas où le site sera gris (imagesCoquelicot)
elseif ($_COOKIE['DESIGN'] == "Gris") {
$background = "#e8e3e2";
$menuHaut = 'Champ_de_coquelicots_Papaver_rhoeas.jpg';/*"imagesCoquelicot/menuhaut.jpg"; */
}
// cas où le visiteur n'a pas choisi de couleur (on affiche alors une par défaut)
else {
$background = "#FAE8CF";
$menuHaut = "imagesEden/menuhaut.jpg";
}
}
// on inclut toujours notre fichier de design

//include '../include/design.php';

$expire=365*24*3600;
// on envoie notre cookie
if (!empty($_POST['couleur'])) {
setcookie ("DESIGN", $_POST['couleur'], time() + $expire);
}
?>
<html>
<head>
<title>Changement de couleur</title>
</head>

<?php
// on utilise les variables du fichier design.php pour pouvoir afficher les bonnes couleurs suivant la couleur du cookie (ou bien la couleur par défaut si le cookie n'existe pas)
echo '<body bgcolor = "',$background,'">';
echo '<img src = "',$menuHaut,'">';
?>
<br /><br />
Vous avez choisi un site de couleur :
<?php
if (!empty($_POST['couleur'])) {
echo $_POST['couleur'];
}
?>
<br />
<!-- formulaire de choix de design -->
<div align="center">
<form action = "" method = "post">
<select name = "couleur" class="formulScs">
<option>Couleur du site</option>
<option>Ocre</option>
<option>Gris</option>
</select>
<input type = "submit" value = "Modifier" class="formulScs">
</form>
</div>
</body>
</html>


@+
Il en faut peu pour être heureux !!!!!
Forrest
le 13/04/2010 à 10:50
Forrest
Bonjour et merci Moogli,

Je viens de voir ta réponse ! Je mets en application dès que possible, certainement ce soir.

Je reviendrai vers toi pour te donner le résultat.

Cordialement

Jean-Pierre
Jean-Pierre
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours