Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: cookies, wersja strony
Forum PHP.pl > Forum > PHP
herhor67
Witam,
otóż jakiś czas temu pobrałem pewien CMS (nazwa nie ma znaczenia), a potem na jego podstawie zrobiłem uproszczoną wersję -stronę mobilną.
No i chciałem zrobić coś takiego:
Po wejściu w jedną z tych stron, skrypt sprawdzaczy istnieje plik cookie, jeżeli tak, to jeżeli wartość jest np. "mobile", to przekierowuje na mobilną wersję, jeżeli np. "classic" to na główną.
Jeżeli pliku cookie nie ma, sprawdza z jakiego urządzenia korzysta użyszkodnik i przekierowuje na odpowiednią.
Wydaje się proste, męczyłem się kilka godzin i nie wymęczyłem sad.gif
Oto co napisałem:
Strona główna zawiera:
  1. $ver = $_COOKIE['wersja']; //pobranie do zmiennej warto@ci cookie
  2. include("m/user_agent.php"); //zaincludowanie strony sprawdzajacej urzadzenie
  3.  
  4. if($ver == "mobile") //czy cookie zawiera "mobile"
  5.  {
  6.   header('Location: m/?p=Home'); //przekierowanie na stronę mobilną
  7.  }
  8.  
  9. if(empty($ver)) //jeżeli cookie brak
  10.  {
  11.   if($mobile == 1) //sprawdza czy wykryto telefon/tablet
  12.    {
  13.     header('Location: m/?p=Home'); //przekierowanie na mobilną
  14.    }
  15. }


Strona mobilna:
  1. $ver = $_COOKIE['wersja'];
  2. include("user_agent.php");
  3.  
  4. if($ver == "classic")
  5.  {
  6.   header('Location: ../?p=Home');
  7.  }
  8.  
  9. if(empty($ver))
  10.  {
  11.   if($mobile == 0)
  12.    {
  13.     header('Location: ../?p=Home');
  14.    }


Plik ustawiania ciastek:
  1. $na = $_GET['na'];
  2. if ($na == "mobile")
  3.  {
  4.   setcookie("wersja", "mobile", time()+1000000000);
  5.   header("Location: m/?p=Home");
  6.  }
  7.  
  8. if ($na == "classic")
  9.  {
  10.   setcookie("wersja", "classic", time()+1000000000);
  11.   header("Location: m/../?p=Home");
  12.  }
  13.  
  14. if ($na == "deletecookie");
  15.  {
  16.   setcookie("wersja", "clear", time());
  17.   header("Location: m/?p=Home");
  18.  }

Pewnie robię jakiś głupi błąd, no ale bywa :/
Mam nadzieję że wyraziłem się zrozumiale smile.gif
P.S. Plik do ustawiania ciastek jest w głównym katalogu razem z klasyczną wersją, a strona mobilna jest w podfolderze m/
arnoldk_20
W instrukcjach if stosuje się dwa znaki równa się
herhor67
Cytat(arnoldk_20 @ 21.10.2014, 23:24:16 ) *
W instrukcjach if stosuje się dwa znaki równa się

No a jak mam? wszędzie są po dwa równa się (==).
Jakaś inna podpowiedź?
EDIT: my bad, są 2 miejsca z pojedynczym :/
EDIT2: Poprawiłem, ale dalej nie działa.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.