Bleu, rouge, vert, blanc, rose, sombre, clair, sobre … Difficile de tout aimer.
Et le design de votre site, tout le monde l’aime ?
Non, sans doute.
Certains préfèrent les bleus, d’autres les verts, les clairs, les sombres, les sobres, les sophistiqués …
Facile de critiquer mon design, comment veux-tu que je fasse pour plaire à tout le monde ?
Optez pour un site multi-design !
Préparation psychologique
Huum c’est bien beau un site multi-design, mais comment je le fais ?
Tout d’abord, quand le visiteur choisira un design, il nous faudra enregistrer quelque part ce choix pour afficher le même design lors de ses prochaines visites.
Les sessions ? Non
Les bases de donnée ? Non, des requêtes pour rien, et le visiteur peut changer d’ip
Les fichier textes ? Inutile
Les cookies ? Oui ! Bonne réponse
Grâce aux cookies, nous allons utiliser la mémoire du visiteur pour enregistrer son choix (ben oui, un design ça se paye ^^ )
Les cookies et Php
C’est quoi les cookies ? Des biscuits ?
Non, espèce de gourmand.
Les cookies sont des petits fichiers textes enregistrés sur la machine du visiteur dans lesquels sont écrits des informations.
Ces informations serviront au site de se souvenir d’un de vos choix, de vous reconnaître, et bien d’autres choses.
Voici les bases à connaître :
Écrire un cookie
$timestamp_expire = time() + 365*24*3600; // Expiration du cookie dans un an
setcookie('nom_du_cookie', 'valeur', $timestamp_expiration); // Ecriture du cookie
Comme vous pouvez le remarquer, lors de de la création d’un cookie, nous devons indiquer la date d’expiration de celui-ci.
Au bout d’un certain temps (exprimé au format timestamp) il expira : il ne sera plus valide.
Récupérer la valeur d’un cookie
<?php $valeur_cookie = $_COOKIE['nom_du_cookie']; // $valeur_cookie contient 'valeur', en suivant notre exemple ci-dessus echo $valeur_cookie; // Affichera la valeur du cookie (ici 'valeur') ?>
Modifier la valeur d’un cookie
Pour modifier la valeur d’un cookie, il suffit d’en créer un nouveau, portant le même nom.
Celui-ci écrasera l’ancien !
Supprimer un cookie
Il n’existe pas de fonction spéciale pour supprimer un cookie.
Mais nous pouvons le supprimer grâce à 2 petites astuces :
La première consiste à lui donner aucune valeur ni aucune date d’expiration :
<?php
setcookie('nom_du_cookie'); // Ecrasera le cookie portant le nom 'nom_du_cookie'
?>
La seconde consiste à créer un cookie du même nom mais en lui donnant une date d’expiration déjà passée :
<?php
setcookie('nom_du_cookie', '', '0'); // Ecrasera le cookie portant le nom 'nom_du_cookie'
?>
Plus d’informations sur les cookies : http://php.net/setcookie
Faites attention à la sécurité de vos applications, le visiteur peut modifier son cookie.
Si par exemple, vous identifiez un membre via le pseudo stocké en cookie, si je passe sur votre site et modifie la valeur de ce cookie en mettant votre pseudo, je me retrouve sur votre compte !
Ceci est un exemple parmi tant d’autre, sachez juste que l’on peut modifier un cookie.
Consignes et contraintes
- Sur chaque page, nous allons regarder quel est le design que le visiteur souhaite en fonction de son cookie. Si le cookie n’existe pas, nous choisirons le design n°1 par défaut.
A partir de là 2 solutions :
- Soit nos 2 design ont la même partie html, seul diffère le css : Nous inclurons la feuille de style en fonction du design choisi.
- Soit nos 2 designs requiert une partie html différente : Nous inclurons le fichier correspondant au design, comprenant le site normal. Si vous optez pour cette solution, pour ne pas avoir à recopier le code sur les 2 pages, vous pouvez très bien inclure un fichier php pour remplacer les codes php. Par exemple, on inclura le fichier news.php dans le corps de la page des deux designs, au lieu d’avoir le même code sur les deux designs (on modifiera qu’un seul fichier).
- Nous proposerons 2 design pour commencer, donc 2 liens. (Admettons design.php?design=1 et design.php?design=2)
- Au clique sur l’un de ces liens, nous serons donc sur design.php, nous créerons un cookie, ou modifierons la valeur du cookie déjà crée (même procédé), en lui donnant une durée de vie d’1 an (ou comme vous voulez)
- Puis nous redirigerons vers la page précédente : le design aura changé. Le visiteur ne verra rien du tout, juste le design changé au clique, car nous redirigerons.
Cet exercice étant un vrai exercice, je vous abandonne ici et vous laisse coder votre système multi-design !
Bonne chance à vous
