Guisang
{ Membre }
Messages : 4
| Salut les amis, bon présentation faite, je met mon 2eme post pour expliquer là où j'aurais besoin de votre aide. En désaccord concernant les couleurs de fond de notre futur site, j'ai eu dans l'idée de créer un systeme de cookies. A l'heure actuelle, il est actif. Seul problème, je souhaiterais rajouter une variable de plus dans le formulaire et donc dans un cookie correcpondant controlant la couleur de fond de l'élément - Code:
-
<div id="templatemo_wrapper"> - Code:
-
<!-- /*<![CDATA[*/#cookies.php /*This code will demonstrate use of cookies with PHP It is very easy to understand and is better for beginner to understand and get idea about power of cookies when used with PHP.Here we give user a form to choose colors he/she likes for website and when he/she visits site again within one hour his/her settings are saved and read from cookie and he/she doesn't have to set the page color and page text color again.You can change time from 3600 seconds to whatever you deem appropriate in your case. if you don't understand anything please email me*/
<?php #checking if form has been submitted if (isset($_POST['submitted'])){ #if yes (form is submitted) assign values from POST array to variables $newbgColor=$_POST['bgColor']; $newtxtColor=$_POST['txtColor'];
#set cookies setcookie("bgColor",$newbgColor,strtotime( '+30 days' )); setcookie("txtColor",$newtxtColor,strtotime( '+30 days' ));
} #in case user has come for first time and cookies are not set then if ((!isset($_COOKIE['bgColor']) ) && (!isset($_COOKIE['txtColor']))){ $bgColor = "#999"; $txtColor="#000"; } #if cookies are set then use them else{ $bgColor = $_COOKIE['bgColor']; $txtColor = $_COOKIE['txtColor'];
} ?> --> </style> <link href="SpryAssets/SpryCollapsiblePanel.css" rel="stylesheet" type="text/css" /> </head> <body bgcolor="<?php echo $bgColor ?>" text="<?php echo $txtColor ?>"> <div id="CollapsiblePanel1" class="CollapsiblePanel"> <div class="CollapsiblePanelTab" id="colorfond" tabindex="0">Changer le fond</div> <div class="CollapsiblePanelContent"><form action= "<?php echo $_SERVER['PHP_SELF']; ?>" method ="POST"> Fond: <select name=bgColor> <option value ="#999" selected>Bigouden</option> <option value ="#CCC">Riecois</option> <option value ="#003366">Mediterrannée</option> <option value ="#F30">Merlu</option> </select> Texte: <select name=txtColor> <option value ="#000" selected>Normal</option> <option value ="green">Vert</option> <option value ="#F30">Merlu</option> <option value ="#003366">Bleu</option> </select> <input type ="hidden" name="submitted" value="true"> <input type="submit" value="Envoyer">
<p>Pensez à appuyer sur F5 ou actualiser après avoir cliqué sur envoyer</P> </form> </div> </div></body> Je souhaite donc rajouter une option pour changer la couleur de fond d'un autre élément via ce même formulaire dans le genre - Code:
-
Fond du milieu <select name=bgColor2> <option value ="#000" selected>Noir</option> <option value ="#fff">Blanc</option></select> Je n'ai à l'heure actuelle aucune idée de comment rajouter cette option dans un cookie (soit différent, soit un déjà créé) Merci d'avance | | |
|
Espeon
Administrateur
Messages : 1819
| Bonsoir Guisang Si je comprends bien ta question, tu souhaiterais utiliser la même technique "du cookie" afin de l'appliquer sur un deuxième élément ? Comme tu es déjà parvenu à le faire une fois, je suppose que ce n'est pas le point de vue technique qui te pose soucis mais plutôt quelle stratégie à appliquer pour, comme tu dis, "en faire un différent ou utiliser celui qui existe déjà". La réponse est un peu dans la question en fait : tu peux tout à fait, si tu le souhaite, créer un deuxième cookie pour remplir ce rôle, en changeant simplement le nom de ce dernier. L'idée d'utiliser le même est en effet pertinente car ça éviterait de créer des centaines de cookies pour chaque variable que tu souhaites stocker/personnaliser. En revanche, cela implique qu'il faut : - trouver une stratégie pour pouvoir stocker plusieurs informations dans une seule chaîne de caractères,
- puis retrouver ces informations pour les utiliser
Pour cela, il y a le format JSON qui te permet de stocker des informations sous la forme clé/valeur, le tout dans une chaîne de caractères. C'est plutôt très bien géré, et il y a même des fonctions Javascript et jQuery pour faire le gros du travail à ta place. Si tu veux partir là-dedans, il faut commencer par définir une structure logique de clé/valeur, comme ceci : - Code:
-
{ "bgColor": "#999", "txtColor": "#000", "bgColor2": "#FFF", "txtColor2": "#000" } Mes conseils soit dit en passant : - Défini des noms plus explicites que
bgColor2 & co. sinon ça va vite devenir le bordel à comprendre et à maintenir/faire évoluer
- N'oublie pas que les membres peuvent modifier eux-mêmes leurs cookies, prend donc bien garde à la sécurité de ton site si tu utilise directement les informations qui sont contenues dedans (il vaudrait mieux que tu les filtres si tu ne veux pas avoir de mauvaises surprises)
| | |
|
Orange
RocketMan
Messages : 3086
| *Orange court se mettre au PHP*
Merci Espeon ^^ | | |
|