Bonjour,
J'ai donc un problème evec mon styleswitcher :
quand le clique pour changer le style ça me renvoie sur la page d'erreur de mon hébergeur
Avant de vous montrer mes scripts, je tiens à vous "dire" comment mon site est fait car c'est possible que le problème vienne de là :
- tout d'abord mon site est hébergé chez Voila, ça implique qu'à chacune de mes pages est ajouté automatiquement à la fin de mon script :
(mais ça n'a jamais créé de problème de compatibilité avec l'affichage d'une simple feuille de style en CSS)
- d'autre part il faut savoir que sur Voila, lorsqu'on tape l'adresse d'un répertoire (par ex : http://site.voila.fr/mon_site/mon_repertoire/) sans y préciser quelle page on veut (par ex : http://site.voila.fr/mon_site/mon_repertoire/ma_page.html), ça renvoie à la page d'erreur de Voila
Ces petites précisions apportées, voici (dans l'ordre du tutoriel) mes scripts :
1/ Principe et mise en place
Ici j'ai exactement suivi le tuto, à savoir que j'ai placé mes 2 fichiers CSS (classic.css et street.css) comme convenu, et que mon dossier "styles" je l'ai mis au même endroit que tout le reste dans mon répertoire principal http://site.voila.fr/huit/8/ ("huit" étant le nom de mon site et "8" étant mon répertoire principal)
2/ Le document html
Quand il est dit dans le tuto "Le document html doit être enregistré dans un fichier portant l'extension .php, par exemple : index.php.", moi j'ai copié le script donné, je l'ai modifié et jai ensuite RENOMMER ce fichier HTML en "index.php"
>> http://site.voila.fr/huit/8/index.php
3/ Le fichier : index.php
Donc au même endroit que j'ai placé mes dossiers "classic" et "street" contenant respectivement le fichier "classic.css" et le ficchier "street.css", cad dans le sous-répertoire "styles", j'ai placé le fichier "styleswitcher.inc.php"
>> http://site.voila.fr/huit/8/styles/styleswitcher.inc.php
Merci d'avance pour votre aide
J'ai donc un problème evec mon styleswitcher :
quand le clique pour changer le style ça me renvoie sur la page d'erreur de mon hébergeur
Avant de vous montrer mes scripts, je tiens à vous "dire" comment mon site est fait car c'est possible que le problème vienne de là :
- tout d'abord mon site est hébergé chez Voila, ça implique qu'à chacune de mes pages est ajouté automatiquement à la fin de mon script :
<script language='javascript'>document.write('<img src="http://monsite.voila.fr/servlets/istat?site=huit&page=/8/travaux.html&outil=ftpweb&n=' + Math.round(Math.random()*100000) + '" width=1 height=1>'); </script>
<script language='javascript'>document.write('<img src="http://e.voila.fr/cgi-bin/ft/10000033638?&page=huit_travaux.html&n=' + Math.round(Math.random()*100000) + '" width=1 height=1>');</script></body>
</html>
(mais ça n'a jamais créé de problème de compatibilité avec l'affichage d'une simple feuille de style en CSS)
- d'autre part il faut savoir que sur Voila, lorsqu'on tape l'adresse d'un répertoire (par ex : http://site.voila.fr/mon_site/mon_repertoire/) sans y préciser quelle page on veut (par ex : http://site.voila.fr/mon_site/mon_repertoire/ma_page.html), ça renvoie à la page d'erreur de Voila
Ces petites précisions apportées, voici (dans l'ordre du tutoriel) mes scripts :
1/ Principe et mise en place
Ici j'ai exactement suivi le tuto, à savoir que j'ai placé mes 2 fichiers CSS (classic.css et street.css) comme convenu, et que mon dossier "styles" je l'ai mis au même endroit que tout le reste dans mon répertoire principal http://site.voila.fr/huit/8/ ("huit" étant le nom de mon site et "8" étant mon répertoire principal)
2/ Le document html
Quand il est dit dans le tuto "Le document html doit être enregistré dans un fichier portant l'extension .php, par exemple : index.php.", moi j'ai copié le script donné, je l'ai modifié et jai ensuite RENOMMER ce fichier HTML en "index.php"
>> http://site.voila.fr/huit/8/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=classic">mon style de base</a></li>
<li><a href="<?php echo $actuel; ?>?style=street">On se met au vert</a></li>
</ul>
<script language='javascript'>document.write('<img src="http://monsite.voila.fr/servlets/istat?site=huit&page=/8/index.html&outil=ftpweb&n=' + Math.round(Math.random()*100000) + '" width=1 height=1>'); </script>
<script language='javascript'>document.write('<img src="http://e.voila.fr/cgi-bin/ft/10000033638?&page=huit_index.html&n=' + Math.round(Math.random()*100000) + '" width=1 height=1>');</script></body>
</html>
3/ Le fichier : index.php
Donc au même endroit que j'ai placé mes dossiers "classic" et "street" contenant respectivement le fichier "classic.css" et le ficchier "street.css", cad dans le sous-répertoire "styles", j'ai placé le fichier "styleswitcher.inc.php"
>> http://site.voila.fr/huit/8/styles/styleswitcher.inc.php
<?php
function construire_url($dossier)
{
return 'http://site.voila.fr/huit/8//styles/' . htmlspecialchars($dossier) . '/style.css';
}
$dossiers = array(
'classic',
'street',
);
$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]);
}
?>
<script language='javascript'>document.write('<img src="http://monsite.voila.fr/servlets/istat?site=huit&page=/8/styles/switch.html&outil=ftpweb&n=' + Math.round(Math.random()*100000) + '" width=1 height=1>'); </script>
<script language='javascript'>document.write('<img src="http://e.voila.fr/cgi-bin/ft/10000033638?&page=huit_switch.html&n=' + Math.round(Math.random()*100000) + '" width=1 height=1>');</script>
</body>
</html>
Merci d'avance pour votre aide