Voila le code que je pensais utiliser:
CODE
<html><head>[...]
<link rel="alternate stylesheet" type="text/css" href="style.php?css=fixed" title="Fixed" />
<link rel="alternate stylesheet" type="text/css" href="style.php?css=lynx" title="Lynx" />
<link rel="alternate stylesheet" type="text/css" href="/style.php?css=orange" title="Orange" />
link rel="stylesheet" type="text/css" href="style/style.php" title="Feuille de style actuelle" />
<link rel="alternate stylesheet" type="text/css" href="style.php?css=fixed" title="Fixed" />
<link rel="alternate stylesheet" type="text/css" href="style.php?css=lynx" title="Lynx" />
<link rel="alternate stylesheet" type="text/css" href="/style.php?css=orange" title="Orange" />
link rel="stylesheet" type="text/css" href="style/style.php" title="Feuille de style actuelle" />
avec pour code PHP:
CODE
<?php
Header("Content-type:text/css");
if(isset($_GET['css'])) {$css=$_GET['css']; SetCookie("phpcss",$css,time()+630720000)}
elseif(isset($_COOKIE['phpcss'])) $css=$_COOKIE['phpcss'];
else $css="orange";
echo "@import url($css.css);\n";
?>
Header("Content-type:text/css");
if(isset($_GET['css'])) {$css=$_GET['css']; SetCookie("phpcss",$css,time()+630720000)}
elseif(isset($_COOKIE['phpcss'])) $css=$_COOKIE['phpcss'];
else $css="orange";
echo "@import url($css.css);\n";
?>
Or, quand j'inclue dans ma page les feuilles de styles alternatives, le navigateur charge en mémoire les CSS résultant et modifie les cookie 3 fois:
style.php?css=fixed => SetCookie("phpcss","fixed",time()+630720000)
style.php?css=lynx => SetCookie("phpcss","lynx",time()+630720000)
style.php?css=orange => SetCookie("phpcss","orange",time()+630720000)
Au final, le cookie a donc toujours pour valeur "orange". Si l'utlisateur change de feuille de style et visite une autre page, la feuille de style sélectionnée ne sera pas réutilisée, car le cookie prend une valeur "orange" avant que soit inclue la feuille de style.
Conclusion: quelqu'un aurait-il une proposition ou une alternative ??
PS: je sais que c'est pas facile à comprendre, posez-moi des questions ...