Mam stranku, ktora ma dva mody - denny a nocny rezim. Nocny rezim je na url example.com a denny rezim je na url example.com/light/ Su to ako keby dve rovnake stranky ibaze design je trosku svetlejsi. Od 6:00 - 20:00 je denny rezim a od 20:00 - 06:00 je nocny rezim ako defautna hodnota defaultny, pricom samozrejme je mozne ho lubovolne menit podla seba.
V podstate chcem aby ked nieto klikne zvonka na urcitu URL napr. example.com/index.php tak ked je den ho presmeruje na example.com/light/index.php a z vnutra alikacie chcem aby to nepresmerovavalo na rezimi lebo je moze ze user si zvolil vlastny.
Kod som spravil takyto a je funkcny okrem IE. Neviem preco ale pri IE ho stale refresuje. Asi bude chyba niekde ze inak berie $_SERVER['HTTP_REFERER']; ako ostatne prehliadace, ale neviem to osetrit.
Kód: Vybrať všetko
function curPageURL() {
$pageURL = 'http';
if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
$pageURL .= "://";
if ($_SERVER["SERVER_PORT"] != "80") {
$pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
} else {
$pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
}
return $pageURL;
}
$lastURL = $_SERVER['HTTP_REFERER'];
if(!strstr($lastURL, "example.com")) { // ak sa ide na stranku zvonka
if(date("G") > 5 && date("G") < 20) { // Ak je cas od 06:00 po 20:00
$nowURL = curPageURL(); // Zisti aktualnu URL
if(!strstr($nowURL, "light"))
$nowURL = preg_replace("/example.com\//", "example.com/light/", $nowURL); // Zmen rezim na denny
header("Location: ".$nowURL); // Presmeruj
} else { // Ak je noc
$nowURL = curPageURL();
if(strstr($nowURL, "example.com/light/"))
$nowURL = preg_replace("/example.com\/light\//", "example.com/", $nowURL); // Zmen rezim na nocny
header("Location: ".$nowURL); // Presmeruj
}
}