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 Smiley decu



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 Smiley cligne
Hello,

À vue de nez, voila n'interprète pas le PHP. Quand je vais sur la page index.php, qui porte bien l'extension .php, le serveur m'envoie le fichier directement, sans interpréter le code PHP. Il est probable que PHP ne soit tout simplement pas disponible sur les pages perso de voila.

Solution: changer d'hébergeur.