Bien le bonjour,

Je ne sais pas si c'est la bonne place pour mettre ce post. Ça implique un tuto, mais le problème, c'est mon serveur local Easyphp (puisque j'ai essayé le script sur mon hébergeur sans problème).

J'ai récemment décidé d'installer la fonctionnalité du style switcher grâce au superbe tuto d'Alsa Smiley biggrin

Pour commencer par le commencement, j'ai repris le même codage que le tuto.

Le fichier styleswitcher.inc.php :

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

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

$actuel = htmlspecialchars($PHP_SELF);

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

else if(in_array($_COOKIE['style'], $dossiers, true))
{
	$url = construire_url($_COOKIE['style']);
}

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



Et la page pour changer le style, index.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>



Le répertoire styles se trouve à la racine du site ainsi que le fichier index.php.

Comme je l'ai dit, cela fonctionne à merveille sur mon hébergeur web (après avoir remplacer l'url, évidemment!). Mais là où ça coince, c'est localement sous Easyphp 1.8 (windows XP).

La première fois que je charge la page index.php, ça me renvoie ces erreurs:



Notice: Undefined variable: PHP_SELF in h:\easyphp1-8\www\styles\styleswitcher.inc.php on line 13

Notice: Undefined index: style in h:\easyphp1-8\www\styles\styleswitcher.inc.php on line 15

Notice: Undefined index: style in h:\easyphp1-8\www\styles\styleswitcher.inc.php on line 21



Smiley eek

Curieux, j'ai quand même tenté de changer le style et, oui, ça fonctionne, mais ça me renvoie ces erreurs:



Notice: Undefined variable: PHP_SELF in h:\easyphp1-8\www\styles\styleswitcher.inc.php on line 13

Warning: Cannot modify header information - headers already sent by (output started at h:\easyphp1-8\www\styles\styleswitcher.inc.php:13) in h:\easyphp1-8\www\styles\styleswitcher.inc.php on line 17



Smiley eek Smiley eek

Qu'est-ce qui cloche?
Modifié par phil_33 (02 Oct 2007 - 17:28)
Salut,

Le soucis c'est que tu te retrouve avec une adresse absolue dans ton disque dur.
Elle débouche dans ton répertoire easyPHP, mais je suppose que ce n'est pas là que tu as mis le style switcher de ton site. Smiley cligne
Merci pour l'info. Easyphp pour un toto comme moi n'est pas très user friendly. Alors je suis passé à Wamp5 et c'est super.