Comment faire un site multi couleurs en PHP

Nous allons donc voir ce qu'il est nécessaire de faire afin de réaliser un site multi couleur tout comme le php facile.

En y réfléchissant, deux minutes, on peut s'apercevoir que le principe de ce script est vraiment simple.
En effet, lorsqu'un visiteur se connecte sur toutes les pages de notre site, nous allons regarder s'il possède le cookie (parce ce script utilise un cookie) gérant la couleur du site.
Si oui, alors on affiche le site suivant la valeur du cookie.
Si non, on affiche la couleur par défaut.

De plus, nous allons réaliser un petit formulaire permettant au visiteur de choisir sa couleur préférée pour le site, formulaire qui aboutira sur l'envoi d'un cookie contenant cette couleur préférée.

Supposons alors que nous décidons de faire un site permettant le choix de trois couleurs différentes :
  • le vert (qui sera également la couleur par défaut, ce qui veut dire que le visiteur qui vient pour la première fois de sa vie sur le site, et bien il le verra vert)
  • le bleu
  • le rouge


On suppose alors que le cookie que nous allons utiliser porte le nom de DESIGN.

Créons alors la page design.php (page que l'on "includera" à la première ligne de toutes les pages de notre site) qui permet de tester la valeur du cookie afin d'utiliser la bonne couleur, et s'il n'est pas présent, d'utiliser une couleur par défaut.

On aura alors le code suivant (pour la page design.php):

design.php
<?php
// on teste si le cookie est declare (si il n'est pas déclaré, on applique la couleur verte par défaut)
if (!isset($_COOKIE['DESIGN'])) {
$background = "#badbb7";
$logo = "logo_vert.jpg";
}
else {
// cas où le site sera bleu
if ($_COOKIE['DESIGN'] == "bleu") {
$background = "#aac5f4";
$logo = "logo_bleu.jpg";
}
// cas où le site sera rouge
elseif ($_COOKIE['DESIGN'] == "rouge") {
$background = "#fbbda8";
$logo = "logo_rouge.jpg";
}
// cas où le site sera vert
elseif ($_COOKIE['DESIGN'] == "vert") {
$background = "#badbb7";
$logo = "logo_vert.jpg";
}
// cas où le visite n'a pas choisi de couleur (on affiche alors une par défaut : le vert)
else {
$background = "#badbb7";
$logo = "logo_vert.jpg";
}
}
?>



Ensuite, naturellement, il nous faudra bien faire quelque part dans le site un petit formulaire permettant de sélectionner la couleur du site, nous le ferons dans la page index.php (soit la home du site).

Voici alors le code de la page index.php contenant ce formulaire:

index.php
<?php
// on inclut notre fichier de design
include ('design.php');
?>
<html>
<head>
<title>Index du site</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 = "',$logo,'">';
?>
<br /><br />
Voici un formulaire permettant de choisir la couleur du site :<br />
<!-- on affiche notre formulaire permettant de choisi la couleur du site -->
<form action = "send_design.php" method = "post">
<select name = "couleur">
<option>bleu</option>
<option>rouge</option>
<option>vert</option>
</select>
<input type = "submit" value = "Modifier">
</form>

</body>
</html>




Reste alors qu'à écrie le code de la page send_design.php, page qui enverra le cookie (contenant le nom de la couleur choisie) chez le client :

send_design.php
<?php
// on inclut toujours notre fichier de design
include 'design.php';

$expire=365*24*3600;
// on envoie notre cookie de nom DESGIN (donc il sera utilisable via la variable $DESIGN) contenant la couleur choisie (c'est-à-dire le contenu de la variable $couleur)
setcookie ("DESIGN", $_POST['couleur'], time() + $expire);
?>
<html>
<head>
<title>Changement de couleur</title>
</head>

<?
// 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 = "',$logo,'">';
?>
<br /><br />
Vous avez choisi un site de couleur :
<?
echo $_POST['couleur'];
?>
<br /><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>


Et voila :)
Notre système est fait.

Alors bien sur, il vous faudra toujours, et ce, dans toutes les pages de votre site, inclure le fichier desgin.php au tout début de vos pages (qu'il faudra au passage, renommer en .php).

Que faire en plus ?

Vous pouvez par exemple très bien utiliser une feuille de style différente pour chaque couleur de votre site.
Ou encore, définir d'autres variables dans votre fichier design.php afin de faire en sorte que pratiquement tous les éléments de votre site aient une couleur bien précise suivant le choix de couleur effectué par le visiteur.
LoadingChargement en cours