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
Pour commencer par le commencement, j'ai repris le même codage que le tuto.
Le fichier styleswitcher.inc.php :
Et la page pour changer le style, index.php :
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:
Curieux, j'ai quand même tenté de changer le style et, oui, ça fonctionne, mais ça me renvoie ces erreurs:
Qu'est-ce qui cloche?
Modifié par phil_33 (02 Oct 2007 - 17:28)
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
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
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
Qu'est-ce qui cloche?
Modifié par phil_33 (02 Oct 2007 - 17:28)