Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Strona mobilna, po linku wraca do normalnej wersji
Forum PHP.pl > Forum > PHP
winiar789
Witam Państwa serdecznie mam na swojej stronie www wersje mobilną strony, jednak niektóre urządzenia jak ipad czy iphone, galaxy itd. mogą odpalać strony standardowe dlatego na swojej stronie mobilnej chce umieścić link do wersji standardowej wszystko byłoby ok jednak w pliku config dla całej strony mam umieszczony kod w php oczywiście mogę usunąc user agent dla tabletów i urządzeń ale mnie to nie zadowala wolałbym linka. Poniżej podaje skrypt jaki mam umieszczony co mogę zrobić dopisać aby wstawić sobie link np. www.mojadomena.pl/fullversion lub coś podobnego do strony mobilnej aby po kliknięciu mimo user agenta w pliku config ładował orginał strony.
  1. if( !function_exists("is_mobile") ){
  2. function is_mobile(){
  3. $user_agent = $_SERVER['HTTP_USER_AGENT']; // get the user agent value - this should be cleaned to ensure no nefarious input gets executed
  4. $accept = $_SERVER['HTTP_ACCEPT']; // get the content accept value - this should be cleaned to ensure no nefarious input gets executed
  5. return false
  6. || (preg_match('/ipad/i',$user_agent))
  7. || (preg_match('/ipod/i',$user_agent)||preg_match('/iphone/i',$user_agent))
  8. || (preg_match('/android/i',$user_agent))
  9. || (preg_match('/opera mini/i',$user_agent))
  10. || (preg_match('/blackberry/i',$user_agent))
  11. || (preg_match('/(pre\/|palm os|palm|hiptop|avantgo|plucker|xiino|blazer|elaine)/i',$user_agent))
  12. || (preg_match('/(iris|3g_t|windows ce|opera mobi|windows ce; smartphone;|windows ce; iemobile)/i',$user_agent))
  13. || (preg_match('/(mini 9.5|vx1000|lge|cmd|motorola|up.browser|up.link|mmp|symbian|smartphone|midp|wap|v
    odafone|o2|pocket|kindle|mobile|psp|treo (itd.) )/i'
    ,$user_agent))
  14. || ((strpos($accept,'text/vnd.wap.wml')>0)||(strpos($accept,'application/vnd.wap.xhtml+xml')>0))
  15. || (isset($_SERVER['HTTP_X_WAP_PROFILE'])||isset($_SERVER['HTTP_PROFILE']))
  16. || (in_array(strtolower(substr($user_agent,0,4)),array('1207'=>'1207','3gso'=>'3gso','4thp'=>'4thp','501i'=>'501i','502i'=> (itd.) ,)))
  17. ;
  18. } }
  19.  
  20. if ( is_mobile() && !ereg("^m\.",$_SERVER["HTTP_HOST"])) {
  21.  
  22. header ('HTTP/1.1 301 Moved Permanently');
  23. header ("Location: http://m.mojadomena.pl".$_SERVER["REQUEST_URI"]);
  24. exit;
  25. }
  26.  
  27. if( ereg("^m\.",$_SERVER["HTTP_HOST"]) ){
  28. $for_index["MOBILE"] = 1;
  29. $_GET["MOBILE"] = 1;
  30. $domain = "http://".$_SERVER["HTTP_HOST"];
  31. } else if($domain && $_SERVER["HTTP_HOST"] != str_replace("http://", "", $domain) ){
  32. if( ereg("www\.", $_SERVER["HTTP_HOST"]) ){
  33. require_once($rdir . "data/functions_sql.php");
  34. sql_connect();
  35. $t = mysql_fetch_assoc(ask_sql("SELECT * FROM `" . $master_name . "_structure` WHERE `domena` LIKE 'http://" . $_SERVER["HTTP_HOST"]. "%' Limit 1"));
  36. if( $t["id"] ){
  37. $ok =1;
  38. }
  39. }
  40. if( !$ok ){
  41. header ('HTTP/1.1 301 Moved Permanently');
  42. header ("Location: $domain" . ($_GET["PHPSESSID"] ? "?PHPSESSID=" . $_GET["PHPSESSID"] : ""));
  43. exit;
  44. }
  45. }
Necsord
Z tego co widzę masz:
m.domena.pl - wersja mobilna
domena.pl - wersja normalna

1) Nie rób redirect'a z 301, bo przecież strona nie zmieniła adresu na stałe.
2) Ustaw sobie zmienna sesji np $_SESSION['site_type'] = 'full' i przykładowo jeżeli jest ustawiona i ma wartość full nie sprawdzaj jakie urządzenie ma użytkownik. Wtedy będziesz mógł poprostu dać linka do domena.pl.
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.