J´ai trouvé ca mais j´y comprends rien...
<?php
$validite = 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[´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´];
}
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´];
}
// 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);
// 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´].´/´) === false || strpos($redirection, ´
http://´.$_SERVER[´SERVER_NAME´].´/´) != 0) {
/* tentative de piratage ? on remplace par la racine du site */
$redirection = ´
http://´.$_SERVER[´SERVER_NAME´].´/´;
}
setcookie(´feuilleStyle´, $style, $validite, ´/´, $_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");
?>