Multi-CSS, code PHP pour en changer, et le conserver

Multi-CSS, code PHP pour en changer, et le conserver - HTML/CSS - Programmation

Marsh Posté le 12-02-2005 à 16:33:37    

J'ai fait plusieurs design pour mon site web, j'ai créer un menu déroulant proposant les différent choix, j'ai ensuite mis au début de ma page, un code en IF ELSE, mais il ne marche qu'a moitié ...
 
voici le code du menu déroulant :

Citation :

<div id="minimenudesign"><b>Designs [3] :</b><br/><form action="" method="post"/>
<select class="deroulant" name="choix_design" align="center">
    <option value="euro">€uro</option>
    <option value="greendos">Green Dos</option>
    <option value="modern">Modern</option>
    </select><br/><input type="submit" value="OK"/>
 </form>
</div>


 
Voici le code en début de la page :

Citation :

<?
session_start ();
 
// choix du design
if  (isset($_POST['choix_design']))    // si un design a été choisis, création du cookie
    {
        $timestamp_expire = time() + 30*24*3600;
        setcookie('choix_design', $_POST['choix_design'], $timestamp_expire);
  $choix_design = $_COOKIE['choix_design'];
 }
     
    elseif (isset($_COOKIE['choix_design'])) // si un cookie a été créé, lecture du cookie
    {
        $choix_design = $_COOKIE['choix_design'];
 }
     
    else // sinon, css par défaut
    {
    $choix_design = "euro";
    }
 
?>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
   <head>
       <title>.:: Mon Chouette Site sur les chiotts ::. </title>
       <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <link rel="stylesheet" media="screen" type="text/css" title="Euro" href="<? echo $choix_design ?>.css" />
   </head>


 
Merci de votre aide.. parce que là j'y arrive pas. Ils ont fait pareil sur le site www.openweb.org


Message édité par Sorgues_ le 12-02-2005 à 16:38:44
Reply

Marsh Posté le 12-02-2005 à 16:33:37   

Reply

Marsh Posté le 12-02-2005 à 16:36:50    

1/ tu n'as pas préciser ce qui ne marche pas
2/ ...ton site semble un peu trop douteux

Reply

Marsh Posté le 12-02-2005 à 16:37:30    

ça veut dire quoi "à moitié" ? :heink:

Reply

Marsh Posté le 12-02-2005 à 16:41:02    

Ah oui, c'est vrai ..  
 
la première fois que le site est visité, c'est le design "euro" qui s'affiche par défaut.. ensuite, si on en choisis un autre, un cookies est créé avec le choix, et le CSS change aussi. Jusque là, pas de problème.
Mais si on rechange, ça ne fonctionne pas du premier coup, il faut réactualiser la page...J'ai vérifié, le cookie a bien changé, mais le design pas, il est tjs au précédent.
Après actualisation, ça fonctionne.. mais c'est ennuyeux quand même .. :(  
 
J'ai aussi ce message d'erreur lorsque j'actualise la page :
http://users.i4surf.net/ftp311/pub/divers/postdata.gif


Message édité par Sorgues_ le 12-02-2005 à 16:42:58
Reply

Marsh Posté le 12-02-2005 à 16:44:55    

Déjà , passe en GET.

Reply

Marsh Posté le 12-02-2005 à 16:46:16    

non, en POST vu que la variable arrive d'un formulaire ou method="post" ..


Message édité par Sorgues_ le 12-02-2005 à 16:46:46
Reply

Marsh Posté le 12-02-2005 à 16:48:27    

Sorgues_ a écrit :

non, en POST vu que la variable arrive d'un formulaire ou method="post" ..


 
Ok, mais donc, la fenêtre POSTDATA blablabla sera toujours là en cas d'actualisation de ta page.  :o  

Reply

Marsh Posté le 12-02-2005 à 16:56:10    

et si je mets GET .. $_POST ne sera pas pris en compte ? ..

Reply

Marsh Posté le 12-02-2005 à 17:15:16    

Tu as 2 possiblitées :
1) Utiliser la methode "get" et le tableau $_GET
2) Utiliser la methode "post" et le tableau $_POST, mais passer par un page "intermediaire". En gros ton formulaire, une fois valide, va redirige vers une page. Dans cette derniere tu cree ton cookie. Ensuite le cookie cree, tu redirige vers ton index. Ds l'index tu examines la valeur du cookie et tu mets le css correspondant. De cette facon, meme si tu recharge la page tu n'auras pas cette boite de confirmation.

Reply

Marsh Posté le 12-02-2005 à 18:15:18    

probléme php et pas html.
Solution, changer le contenu de la variable de session et pas uniquement la valeur qui sera envoyé dans le cookie du navigateur avec la page en couirt de préparation.

Reply

Marsh Posté le 12-02-2005 à 18:15:18   

Reply

Marsh Posté le 12-02-2005 à 18:33:39    

ah oui, bonne idée, vais essayer ça

Reply

Marsh Posté le 13-02-2005 à 16:44:00    

Cerel a écrit :

Tu as 2 possiblitées :
1) Utiliser la methode "get" et le tableau $_GET
2) Utiliser la methode "post" et le tableau $_POST, mais passer par un page "intermediaire". En gros ton formulaire, une fois valide, va redirige vers une page. Dans cette derniere tu cree ton cookie. Ensuite le cookie cree, tu redirige vers ton index. Ds l'index tu examines la valeur du cookie et tu mets le css correspondant. De cette facon, meme si tu recharge la page tu n'auras pas cette boite de confirmation.


 
Merci beaucoup, ton idée ma sauvé, j'y suis enfin arrivé !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed