Bonjour,

J'essaie de faire plusieurs designs au choix, mais je me heurte à un problème voici mon code que j'ai mis dans ma page accueil.php

<?php
header('Content-type: text/html; charset=utf-8');
require_once './styles/styleswitcher.inc.php';
?>




<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
					  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">

	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>Styleswitcher</title>
		<link rel="stylesheet" media="screen, projection" type="text/css" id="css" href="<?php echo $url; ?>" />
	</head>

<body>

	<ul id="styleswitcher">
		<li><a href="<?php echo $actuel; ?>?style=defaut">mon style par défaut</a></li>
		<li><a href="<?php echo $actuel; ?>?style=gazon">On se met au vert</a></li>
		<li><a href="<?php echo $actuel; ?>?style=ocean">On plonge dans l'océan</a></li>
	</ul>
</body>
</html>

J'ai créer un dossier styles dans lequel j'ai mis tous mes styles : gazon, océan etc...Impossible de changer de code

Je vous remercie de m'aider
Modifié par americanbichon (17 Mar 2009 - 13:12)
Alors, en vrac :

* Double post, dans deux sections différentes du forum

* Tu ne dit pas quel est le problème

* Tu ne donne pas le code intégral (plus particulièrement celui de styleswitcher.inc.php)

<?php
function construire_url($dossier)
{
	return 'http://www.atelierpassion.123.fr/styles/' . htmlspecialchars($dossier) . '/style.css';
}

$dossiers = array(
	'defaut',
	'gazon',
	'ocean'
);

$actuel = htmlspecialchars($_SERVER['PHP_SELF']);
$new_style = (isset($_GET['style'])) ? $_GET['style'] : '';
$cookie_style = (isset($_COOKIE['style'])) ? $_COOKIE['style'] : '';

if(in_array($new_style, $dossiers, true))
{
	setcookie('style', $new_style, time() + (365 * 24 * 3600), '/');
	$url = construire_url($new_style);
}

else if(in_array($cookie_style, $dossiers, true))
{
	$url = construire_url($cookie_style);
}

else
{
	$url = construire_url($dossiers[0]);
}
?>


Voici mon code qui d'ailleurs est l'exacte réplique de celui du tuto. (il faut bien débuter)
Le problème est que mon design ne change pas et reste sur celui par défaut.
Désolé pour le double post mais j'ai 62 ans, et les débuts dans les forums sont ardus.
Smiley smile Merci
Si d'ailleurs tu fais : www.atelierpassion.123.fr tu verras le problème sur la page d'accueil
Le code fonctionne (ou du moins fait ce que l'on attends de lui). Le problème est que les feuilles de style styles gazon et ocean n'existent pas aux adresses spécifiées :

http://atelierpassion.123.fr/styles/ocean/style.css -> fichier introuvable

Par contre il y a un problème bien pire sur le site... le fichier header (ou équivalent) semble être inclus plusieurs fois. Et le reste du code est un peu de la bouillie...
Avant de s'attaquer au styleswitcher il y a probablement plus urgent pour le code de ta page, il y a en effet plusieurs DOCTYPE, head et html dans celle-ci (probablement un include mal réalisé - voir la rubrique apprendre pour corriger).

Une fois corrigé on y verra plus clair pour ton soucis de styleswitcher Smiley cligne
Merci de m'aider

Les erreurs sont dues aux nombreux essais que j'ai fait pour intégrer ce satané problème, et j'ai dû oublier d'effacer des codes.
Quant aux feuilles de style gazon et océan elles sont bien sur le serveur distant dans le dossier style!!!!
Bah ton serveur dit que non... Je lui fais plutôt confiance là dessus.

Tu es sûre que les fichiers se trouvent dans :
http://atelierpassion.123.fr/styles/ocean/style.css

et
http://atelierpassion.123.fr/styles/gazon/style.css

?

La feuille de style
http://atelierpassion.123.fr/styles/default/style.css

elle fonctionne très bien.
Il serait malvenu de ma part d'insister mais j'ai bien un dossier styles et dans ce dossier j'ai 3 dossiers gazon, océan etc... et dans chacun d'entre eux, une feuille de style de même nom :style.css

Etant donné que je ne savais pas où envoyer les mains, j'ai suivi bêtement le tutoriel et n'en changerais que lorsque je serais sûre de moi.

Je comprends que c'est chacun son métier, mais je me permets d'insister.
Si erreur il y a de ma part, elle doit crever les yeux et je ne la vois pas
Gazon est disponible, Ocean pas.

Le problème peut venir de plein de chose, soit une erreur dans les URL, soit du problème qui génére X doctypes dans la page.
Je vous remercie, il semble que j'ai trouvé grâce à votre aide. Smiley biggrin Dans mon ancien doctype, celui qui était appelé à disparaître, mais toujours présent dans le code, à cause de mes nombreux essais, il y avait toujours le link dans le head pour ma feuille peinture.css.
Cette feuille existait toujours sur le site distant, mais non rangé dans le dossier styles, ce qui faisait qu'elle était toujours présente, et sans doute prioritaire.

Ne pas jeter la peau de l'ours avant de le tuer Smiley lol mais l'ours est bien dans le viseur, merci encore
Modifié par americanbichon (17 Mar 2009 - 15:37)