Presmerovanie stranky

Programovacie jazyky, rady, poradňa...
Snacker
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 362
Registrovaný: 08 jún 2009, 22:42
Kontaktovať používateľa:

Presmerovanie stranky

Príspevok od používateľa Snacker »

Zdravim,

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
    }
}
Ako tento IE nedostatok zafixovat?
juho
Star
Star
Používateľov profilový obrázok
Príspevky: 551
Registrovaný: 11 máj 2007, 21:16

Re: Presmerovanie stranky

Príspevok od používateľa juho »

a co sa po presmerovani vykonava?
su tam este nejake prikazy za tym headrom? mozno skus za header dat exit alebo dieeeeeeee() alebo si daj vypisat tu url co ti generuje a az tam mas nejake parametre tak ich znormalizuj ako napr & je & myslis ze sa to robi url_encode ci jak,,,
Gepid
Medium Professional
Medium Professional
Používateľov profilový obrázok
Príspevky: 1006
Registrovaný: 15 júl 2008, 16:54
Bydlisko: Trnava
Kontaktovať používateľa:

Re: Presmerovanie stranky

Príspevok od používateľa Gepid »

A čo tak zapisovať do cookies aký režim má zvolený? Čiže ak bude čas od vtedy do vtedy do cookies sa zapíše podla toho režim..A keď ho niekto zmení jednoducho upravíš cookie.
No a čas cookies by si dal kolko minút ostáva do tej ôsmej presp. šiestej.
Či idem na to zle?
Napísať odpoveď