Moze to byc np. tak jak ponizej. Plik z formularzem ustawia cookies i wstawia je jako nazwe pliku *.css. To robi użytkownik.
Na poczatek pliki *.css w katalogu 'css'. Ich nazwy to 1.css, 2.css, 3.css, 4.css i default.css
Plik 1.css
body {
background-color: green;
}
itd dla każdego pliku ze zmienionym kolorem tła
<?php
if(!function_exists('Form')){
function Form($arg) {
$arg = "<form action=" . $_SERVER['SCRIPT_NAME'] . " method=\"POST\">";
$arg .= "<select name=\"opcje\">";
$arg .= "<option value=\"1\">opcja z wartoscia 1</option>";
$arg .= "<option value=\"2\">opcja z wartoscia 2</option>";
$arg .= "<option value=\"3\">opcja z wartoscia 3</option>";
$arg .= "<option value=\"4\">opcja z wartoscia 4</option>";
$arg .= "</select><input type=\"submit\" value=\"Zmien szablon\" /></form>";
return $arg;
}
}
if(!function_exists('SetUpNewUserCookie')){
function SetUpNewUserCookie($input) {
date_default_timezone_set('Europe/Warsaw');
if($input) {
if($_SERVER['REQUEST_METHOD'] === 'POST') {
setcookie( 'CookieUsera', $input, time() + 3600*24*30*12*10 );
header('location: ' . $_SERVER['SCRIPT_NAME']);
}
}else {
Form(@$arg);
}
}
}
print Form($arg = true);
SetUpNewUserCookie(@$_POST['opcje'])
?>
<LINK REL="stylesheet" HREF="<?php if(isset($_COOKIE['CookieUsera'])){echo 'css/' . $_COOKIE['CookieUsera'].'.css';}elseif(isset($_COOKIE['depends'])){echo 'css/' .$_COOKIE['depends'].'.css';}else{echo 'css/default.css';}?>" TYPE="text/css">
Teraz plik który powinieneś includnąć gdzieś na samej górze lub action z formularza niech leci do osobnego pliku a potem headerem przejdz na index. Powino to byc w każdym "odwiedzanym" pliku przez użytkowników jesli wybierasz rozwiazanie 1
<?php
date_default_timezone_set('Europe/Warsaw');
if(!isset($_COOKIE['CookieUsera'])){
setcookie( 'CookieUsera', '1', time() + 3600*24*30*12*10 );
}
/*
pierwsze dwie zmienne $od_1 && $do_1:
poczatek; format: godzina, minuta, sekunda, miesiac , dzien, rok [23,59,59, miesi±c luty, drugi luty, 2019]
koniec; format: godzina, minuta, sekunda, miesiac , dzien, rok [23,59,59, miesi±c luty, czwarty luty, 2019]
**/
$od_1 = mktime(0,0,0, 2, 2, 2019);
$do_1 = mktime(23,59,59, 2, 4, 2019);
$od_2 = mktime(0,0,0, 12, 24, 2019);
$do_2 = mktime(23,59,59, 12, 26, 2019);
if($od_1 <= $do_1 && (time() >= $od_1 && time() <= $do_1))
{
setcookie( 'CookieUsera', $_COOKIE['CookieUsera'], time() - 3600*24*30*12*10 );
setcookie( 'depends', '1', time() + ($do_1 - time()) );
}elseif($od_2 <= $do_2 && (time() >= $od_2 && time() <= $do_2))
{
setcookie( 'CookieUsera', $_COOKIE['CookieUsera'], time() - 3600*24*30*12*10 );
setcookie( 'depends', '2', time() + ($do_2 - time()) );
}else
{
setcookie( 'CookieUsera', $_COOKIE['CookieUsera'], time() + 3600*24*30*12*10 );
}
?>
<LINK REL="stylesheet" HREF="<?php if(isset($_COOKIE['CookieUsera'])){echo 'css/' . $_COOKIE['CookieUsera'].'.css';}elseif(isset($_COOKIE['depends'])){echo 'css/' .$_COOKIE['depends'].'.css';}else{echo 'css/default.css';}?>" TYPE="text/css">
funkcje setcookie() ustawiaja ciastka z ważnością od momentu ustawienia do maks daty $do_1 i $do_2.
Najpierw wywołaj plik z formularzem i ustaw jakies ciacho. Potem przejdz do pliku 2 i F5 zmieniajac wartosci w funkcjach mktime()
$od_1 = mktime(0,0,0, 2, 2, 2019); // drugi luty 2019
$do_1 = mktime(23,59,59, 2, 4, 2019); czwarty luty 2019
$od_2 = mktime(0,0,0, 12, 24, 2019); // wigilia 2019
$do_2 = mktime(23,59,59, 12, 26, 2019); // drugi dzien swiat 2019
Jesli aktualna data z serwera "miesci sie" pomiedzy tymi wyzej wymienionymi nastąpi ustawienie konkretnego cookies. Jesli nie np bedzie to 23 kwiecien lub jakakolwiek inna data nastapi nadpisanie cookies ktore wybral wczesniej user. Trzebaby jeszcze sprawdzic czy user wybral cos. Jesli nie wyswietlac mu plik 'default.css'