Someone was looking for a style switcher (font size for example). You can see one in action on
Text Formatted Code
<?php
$validite = time() + 60 * 60 * 24 * 31 * 2; // deux mois en secondes
$validite1 = time() + 60 * 60 * 24 * 31 * 2; // deux mois en secondes
// on considère que register_globals est désactivée, ainsi ce script fonctionnera quelle que soit la configuration
if (isset($_GET['size'])) {
/* le style a été passé en méthode GET, dans l'URL */
$size = $_GET['size'];
}
else if (isset($_POST['size'])) {
/* le style a été passé en méthode POST, dans les en-têtes HTTP */
$size = $_POST['size'];
}
// protection contre les petits malins qui tenteraient de pirater le site
// le nom du style ne peut contenir que des caractères alpha-numériques et les caractères _ et -
$size = preg_replace('#[^a-zA-Z0-9_-]#', '', $size);
// on considère que register_globals est désactivée, ainsi ce script fonctionnera quelle que soit la configuration
if (isset($_GET['style'])) {
/* le style a été passé en méthode GET, dans l'URL */
$style = $_GET['style'];
}
else if (isset($_POST['style'])) {
/* le style a été passé en méthode POST, dans les en-têtes HTTP */
$style = $_POST['style'];
}
// protection contre les petits malins qui tenteraient de pirater le site
// le nom du style ne peut contenir que des caractères alpha-numériques et les caractères _ et -
$style = preg_replace('#[^a-zA-Z0-9_-]#', '', $style);
if (isset($_GET['redirection'])) {
/* l'adresse de la page en cours est passée en méthode GET, dans l'URL */
$redirection = $_GET['redirection'];
}
else if (isset($_POST['redirection'])) {
/* l'adresse de la page en cours a été passée en méthode POST, dans les en-têtes HTTP */
$redirection = $_POST['redirection'];
}
// on vérifie qu'il s'agit bien d'un lien interne
// il doit commencer par http://monsite.com/
if (strpos($redirection, 'http://'.$_SERVER['SERVER_NAME'].'/cms') === false || strpos($redirection, 'http://'.$_SERVER['SERVER_NAME'].'/cms') != 0) {
/* tentative de piratage ? on remplace par la racine du site */
$redirection = 'http://'.$_SERVER['SERVER_NAME'].'/cms';
}
setcookie('Style', $style, $validite, '/', $_SERVER['SERVER_NAME'], 0);
setcookie('Size', $size, $validite1, '/', $_SERVER['SERVER_NAME'], 0);
// on n'utilise pas le HTTP_REFERER car ce n'est pas fiable et les proxy ne l'envoyent pas
header("Location: $redirection");
?>
Text Formatted Code
<style type="text/css" media="screen">
@import url({layout_url}/<?php echo (isset($_COOKIE['Style'])) ? $_COOKIE['Style'] : 'normal' ; ?>.css);
@import url({layout_url}/<?php echo (isset($_COOKIE['Size'])) ? $_COOKIE['Size'] : 'big' ; ?>.css);
</style>
Text Formatted Code
<a href="size.php?size=small&redirection=http://<?php echo $_SERVER['SERVER_NAME'].str_replace('&', '&', $_SERVER['REQUEST_URI']); ?>"><img src="http://www.geeklog.fr/cms/images/small12.gif" order="0" alt="small" width="12" height="12"></a>
<a href="size.php?size=big&redirection=http://<?php echo $_SERVER['SERVER_NAME'].str_replace('&', '&', $_SERVER['REQUEST_URI']); ?>"><img src="http://www.geeklog.fr/cms/images/big12.gif" order="0" alt="big" width="12" height="12"></a>
<a href="size.php?size=extra&redirection=http://<?php echo $_SERVER['SERVER_NAME'].str_replace('&', '&', $_SERVER['REQUEST_URI']); ?>"><img src="http://www.geeklog.fr/cms/images/extra12.gif" order="0" alt="extra" width="12" height="12"></a>
<a href="style.php?style=large&redirection=http://<?php echo $_SERVER['SERVER_NAME'].str_replace('&', '&', $_SERVER['REQUEST_URI']); ?>"><img src="http://www.geeklog.fr/cms/images/large12.gif" order="0" alt="large" width="12" height="12"></a>
<a href="style.php?style=normal&redirection=http://<?php echo $_SERVER['SERVER_NAME'].str_replace('&', '&', $_SERVER['REQUEST_URI']); ?>"><img src="http://www.geeklog.fr/cms/images/normal12.gif" order="0" alt="normal" width="12" height="12"></a>
style.css is still the main css and small.css or large.css overwrite the class to make the effect.