Bonjour à tous
Igor, ça c'est juste pour une partie du php, pas pour l'ensemble, hors il y a 2 parties à insérer en php. Je repose donc la question. Est ce que ces 2 parties en php doivent être insérées dans la même page php ou bien est ce qu'au moins une d'entre elle doit être insérée dans une autre page php comme par exemple pour la partie qui post dans le formulaire, est ce que la page décrite dans action doit être une autre page ou bien peut on rappeler la page actuelle.
J'ai suivi le tuto (et même les deux), je l'ai relu une dizaine de fois, j'ai fais une recherche "switcher" sur tout le forum avec aucune limite de temps et j'ai lu tous les messages. Il semblerait que d'autres personnes aient eu le même problème que moi seulement bien souvent ne sont pas donnés les détails de la résolution ou alors elles sont dispercées de ci de là rendant la compréhension difficile
J'ai tout inséré dans la même page mais j'avoue avoir du mal à voir tout ce qu'il faut remplacer ou laisser tel quel (merci de ne pas me renvoyer sur le site de phpdebutant, cela n'a rien à voir, je connais mes bases en php et pour changer une roue de voiture on a pas besoin de savoir démonter un moteur

)
J'ai du créé deux dossiers à la racine du site (quand ça marchera je mettrais ces deux dossiers dans un même autre dossier) et je les ai nommé de la même façon que la valeur "value" qui est utilisée dans le formulaire. Dans ces deux dossiers se trouvent un style.css (chacun)
Le code je l'ai inséré dans une page qui content tous les entêtes et pieds de pages de mon site (miseenpage.php)
J'ai inséré ce code en tout début de page (même avant la balise <html>)
<?php
if(isset($_POST['change_style']))
// On vérifie que le formulaire a été soumis
{
if(file_exists("./skins/".$_POST['style']."/style.css"))
{
// On fait un cookie d'une année de durée pour garder en mémoire le style choisi et le récupérer à la prochaine visite
setcookie('style', $_POST['style'], time()+(365*24*3600), "/") ;
// Si le fichier *.css existe on définit une variable $css correspondant au style choisi
$css = $_POST['style'] ;
}
}
elseif(isset($_COOKIE['style']))
// Si le formulaire n'a pas été soumis, on vérifie si le cookie style existe et si tel est le cas on définit une variable $css correspondant à ce style
{
$css = $_COOKIE['style'] ;
}
else
// Si le cookie n'existe pas et que le formulaire n'a pas été soumis, on définit une variable $css correspondant au style par défaut, ici un_style.css par exemple
{
$css = "defaut" ;
}
?>
J'ai inséré cet autre code juste avant de fermer la partie <head> donc avant </head>
<?php
echo " <style type=\"text/css\" media=\"screen\">\n" ;
echo " @import url(".$css."/style.css) ;\n" ;
echo " </style>\n" ;
?>
Quant à la partie non php, celle du formulaire, je l'ai insérée tout bêtement à l'endroit ou je voulais voir mon formulaire apparaître (mais toujours dans la même page)
<div id="style_switcher">
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<fieldset>
<legend>Choisissez un thème</legend>
<select name="style">
<option value="defaut" selected="selected">Défaut</option>
<option value="halloween">Halloween</option>
</select>
<input type="submit" name="change_style" value="Changer le style" />
</fieldset>
</form>
</div>
et voilà le résultat
ICI 
(même le style par défaut il me le prend pas). C'est là que je me demande s'il ne faut pas mettre la seconde partie en php dans une autre feuille. Je suis paumé en gros et je pense que je m'en serais sorti si qq'un avait posté le code avec ses éléments modifiés dedans (ses values et ses noms de css en précisant où sont situés ses dossiers), mais je n'ai rien trouvé de tel
Modifié par Brainwasher (26 Oct 2005 - 10:48)