Siden er opdateret 2. 5. 2006
Script af BLH
Denne side demonstrerer, hvordan man med et php-script og en håndfuld links kan ændre en sides design. Da css-skiftet sker fra serveren, virker det selvfølgelig i alle browsere.
Først skal der øverst i dokumentet, før DocType, indsættes dette php-script:
<?php
// Definer standard-css, hvis ikke andet er bestilt.
define('BASICSTYLESHEET', '../../hss-main.css');
// Definer de tegn, der må og ikke må benyttes ved kald til eksterne css-filer.
function is_harmful($userstring) {
$harmless = array('','','','','','','','','','','','','','','','','');
$harmful = array('@','%',"\\",'<','>','(',')',';','script');
$lowcasestring=strtolower($userstring);
$newstring=str_replace($harmful,$harmless,$lowcasestring);
return $newstring!=$lowcasestring;
// Hvis de er forskellige, var der en udskiftning - der var altså nogle farlige tegn:
return $newstring!=$lowcasestring;
}
// Hovedrutinen:
if (isset($_GET["style"])) $style=$_GET['style']; // Saml input op - også en tom streng.
if (is_harmful($style) || $style=='') $style=BASICSTYLESHEET;
?>
I næstsidste kodelinje definererer du den css, som skal benyttes, hvis der ikke i linket til siden er specifiseret noget andet.
Derefter skal du lave en modifikation af sidens kald til eksternt stylesheet - brug af indlejret stylesheet eller inline-css kan ikke anbefales, da det vil modvirke forsøg på at ændre sidens design:
<link href="<?php echo $style; ?>" rel="stylesheet" type="text/css" />
Nu mangler du bare at lave en håndfuld links den samme side, men med forskellige styles indlæst:
<a href="?style=ds2.css">Alternativt design 2</a>
I linket i kodeboksen her over indsætter du det ønskede css-ark på pladsen, hvor teksten er sort. Samtidig skriver du den ønskede linktekst inden likets sluttag.
Se teknikken demonstreret i asp
Se den side, som kun virker i Firefox, Mozilla, Netscape og Opera.
Bemærk, at de to teknikker (serverside-styret css-skift og css-skift via en browserfunktion) ikke er glade for at arbejde sammen.
Den teknik, som er beskrevet på denne side, åbner mulighed for, at dine brugere kan lave deres egne scc-filer til brug for visning af dine sider. Brugerne skal bare i linket til din side definere placeringen af den css, som skal benyttes:
<a href="designskift.asp?style=http://domain.dk/privat.css">Designskift</a>