Automatyczne przekierowanie ze wzgledu na browsera


(system) #1

Czy zna ktoś jakąś metodę bądz skrypt który umozliwi automatyczne przekierowanie użytkownika do podkatalogu /mobi w zaleznosci od tego czy ktoś używa deskoptowej wersji browsera czy mobilnej. Chcę stworzyć mobilną wersję serwisu opartego na PHP-Fusion. Działanie wersji mobilnej ma opierać się na tym, że w podkatalogu mobi zostanie umieszczona cała struktura CMSa ze sztywnym ustawieniem parametrów dotyczących wygladu(theme itd.). Wersja mobilna odczytywała by dane z tej samej bazy danych co wersja deskoptowa, dzięki czemu pisząc coś na zwykłej stronie natychmiast i automatycznie pojawi się to na wersji mobilnej. Bardziej szczegułowy opis od strony uzyskanai tego pod konkretnym CMSem, Fusion tutaj:http://www.php-fusion.pl/forum/viewthread.php?forum_id=29&thread_id=19589.Gdyby ktoś miał jakis pomysł jak można wykonać takie przekierowanie to byłbym bardzo wdzieczny :slight_smile:


(Krzkaczor) #2

http://forum.php.pl/lofiversion/index.php/t54682.html Łap link mozesz to cudo zmodyfikować i poszukaj jak wyglada "nazwa" przeglądarki mobilnej. (moze zaweira słowo Moblie)


(system) #3

Przepraszam, ale u mnie z PHP to kiepsko dlatego niewiele wskurałęm i prosiłbym kogoś znającego php o pomoc w poskładaniu mi tego do kupy. Opera mini ma taki oto identyfikator :operaminiuk8.th.jpg

@SyntaxError, Na forum do którego podałeś mi link jest napisane że to niepoprawna metoda i został podany link do strony o jakiś ereg(), tego już kompletnie nie rozumiałem. W ruch poszło google i wikipedia i znalazłęm linki do strony 'http://user-agent-string.info/api

, ale z wykorzystaniem tego w praktyce idzie mi ciężko. Dobrze sprawdza cię skrypt Gemiusa http://hitgate.gemius.pl:9170/ua.html niestety nie mam dostępu do jego kodu. Trafiłęm też na kod pliku PHP podobnego do tego z podanej przez ciebie strony, ale niewiedzieć czemu po uruchomieniu go nic mi się nie wyswietla. Poniżej jego kod:

?php


    /**

    * Project: class5.Scout: Geolocalization for PHP

    * File: class5.scout.php

    *

    * This library is free software; you can redistribute it and/or

    * modify it under the terms of the GNU Lesser General Public

    * License as published by the Free Software Foundation; either

    * version 2.1 of the License, or (at your option) any later version.

    *

    * This library is distributed in the hope that it will be useful,

    * but WITHOUT ANY WARRANTY; without even the implied warranty of

    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU

    * Lesser General Public License for more details.

    *

    * You should have received a copy of the GNU Lesser General Public

    * License along with this library; if not, write to the Free Software

    * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

    *

    * @package class5.Scout

    * @version 1.8.1

    * @link http://www.vertis.com.pl/

    * @author Korneliusz Jarzebski 

    * @copyright 2006 Vertis Developers

    * @license http://www.gnu.org/licenses/lgpl.html GNU Lesser General Public License

    */


    class ScoutAgent_definitions

    {

        static protected $tbla = array(

            array('(Mac OS X 10.2)', 'Mac OS', 'X Jaguar'),

            array('(Mac OS X)', 'Mac OS', 'X'),

            array('(Macintosh)', 'Mac OS', 'Classic'),

            array('(Win 9x 4.90)', 'Windows', 'Me'),

            array('(win95)', 'Windows', '95'),

            array('(win98)', 'Windows', '98'),

            array('(windows 3.1)', 'Windows', '3.1'),

            array('(win3.1)', 'Windows', '3.1'),

            array('(windows 95)', 'Windows', '95'),

            array('(windows 98)', 'Windows', '98'),

            array('(windows xp)', 'Windows', 'XP'),

            array('(Windows NT 4.0)', 'Windows', 'NT 4.0'),

            array('(NT4.0)', 'Windows', 'NT 4.0'),

            array('(Windows 2000)', 'Windows', '2000'),

            array('(Windows NT 5.0)', 'Windows', '2000'),

            array('(Win NT 5.0)', 'Windows', '2000'),

            array('(Windows_NT 5.0)', 'Windows', '2000'),

            array('(Windows NT 5.1)', 'Windows', 'XP'),

            array('(Windows NT 5.2)', 'Windows', 'Server 2003'),

            array('(Windows NT 6.0)', 'Windows', 'Vista'),

            array('(WinNT)', 'Windows', 'NT'),

            array('(windows-nt)', 'Windows', 'NT'),

            array('(win32)', 'Windows', ''),

            array('(Windows CE)[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}){0,1}', 'Windows', 'CE'),

            array('(windows)', 'Windows', ''),

            array('(AmigaOS)[]{0,1}([0-9]{1,2}\.[0-9]{1,2})', 'AmigaOS', '@'),

            array('(Symbian)[]{0,1}[OS]{2}[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}){0,1}', 'SymbianOS', '@'),

            array('(RISC OS)[]([0-9]{1,2}\.[0-9]{1,2})', 'RISC OS', '@'),

            array('(SunOS)[]([0-9]{1,2}\.[0-9]{1,2})', 'SunOS', '@'),

            array('(SunOS)', 'SunOS', ''),

            array('(IRIX)[]([0-9]{1,2}\.[0-9]{1,2})', 'IRIX', '@'),

            array('(BeOS)', 'BeOS', ''),

            array('(AmigaOS)', 'AmigaOS', ''),

            array('(MorphOS)', 'MorphOS', ''),

            array('(Amiga)', 'AmigaOS', ''),

            array('(netbsd)[]{0,1}([0-9]{1,2}\.[0-9]{1,2})', 'NetBSD', '@'),

            array('(netbsd)', 'NetBSD', ''),

            array('(freebsd)[]{0,1}([0-9]{1,2}\.[0-9]{1,2})', 'FreeBSD', '@'),

            array('(FreeBSD)', 'FreeBSD', ''),

            array('(openbsd)[]{0,1}([0-9]{1,2}\.[0-9]{1,2})', 'OpenBSD', '@'),

            array('(openBSD)', 'OpenBSD', ''),

            array('(GalaxianOS)', 'GalaxianOS', ''),

            array('(Atari/2600)', 'GalaxianOS', ''),

            array('(OS/2)', 'OS/2', ''),

            array('(getright)[/]{0,1}([0-9]{1,2}\.[0-9]{1,2})', 'Windows', ''),

            array('(unix)', 'Unix', ''),

            array('(redhat)', 'Linux', 'RedHat'),

            array('(gentoo)', 'Linux', 'Gentoo'),

            array('(debian)', 'Linux', 'Debian'),

            array('(slackware)', 'Linux', 'Slackware'),

            array('(ubuntu)', 'Linux', 'Ubuntu'),

            array('(fedora)', 'Linux', 'Fedora'),

            array('(linspire)', 'Linux', 'Linspire'),

            array('(Linux x86_64)', 'Linux', 'x86_64'),

            array('(linux)', 'Linux', ''),

            array('(dillo)', 'Linux', ''),

            array('(elinks)', 'Linux', ''),

            array('(konqueror)', 'Linux', ''),

            array('(links)', 'Linux', ''),

            array('(lynx)', 'Linux', ''),

            array('(X11)', 'Linux', ''),

            array('(java)', 'Java', ''));


        static protected $tblb = array(

            array('(avant browser)', 'Avant Browser'),

            array('(crazy browser)', 'Crazy Browser'),

            array('(myie2)', 'Maxthon'),

            array('(maxthon)', 'Maxthon'));


        static protected $tblc = array(

            array('(zyborg)()', 'ZyBorg', true),

            array('(clushbot)()', 'Clushbot', true),

            array('(googlebot)()', 'Googlebot', true),

            array('(converacrawler)()', 'ConveraCrawler', true),

            array('(crawlconvera)()', 'ConveraCrawler', true),

            array('(cerberian drtrs)()', 'Cerberian Drtrs', true),

            array('(zoomspider)()', 'ZoomSpider', true),

            array('(w3c_validator)()', 'W3C Validator', true),

            array('(w3c-checklink)()', 'W3C Checklink', true),

            array('(cydralspider)()', 'CydralSpider', true),

            array('(fast-webcrawler)()', 'FAST-WebCrawler', true),

            array('(filangy)()', 'Filangy', true),

            array('(findlinks)()', 'Findlinks', true),

            array('(geonabot)()', 'GeonaBot', true),

            array('(IlTrovatore-Setaccio)()', 'IlTrovatore-Setaccio', true),

            array('(larbin)()', 'Larbin', true),

            array('(Linknzbot)()', 'Linknzbot', true),

            array('(ASPseek/)()', 'ASPseek', true),

            array('(limebot)()', 'LimeBot', true),

            array('(MSIECrawler)()', 'MSIECrawler', true),

            array('(msnbot/)()', 'MSNbot', true),

            array('(NetResearchServer)()', 'NetResearchServer', true),

            array('(Openbot/)()', 'Openbot', true),

            array('(Scrubby/)()', 'Scrubby', true),

            array('(Seekbot/)()', 'Seekbot', true),

            array('(Szukacz/)()', 'Szukacz', true),

            array('(Yahoo! Slurp)()', 'Yahoo! Slurp', true),


            array('(opera)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Opera'),

            array('(flock)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,4})', 'Flock'),

            array('(firefox)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,4})', 'Mozilla Firefox'),

            array('(seamonkey)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,4})', 'Mozilla SeaMonkey'),

            array('(firebird)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Mozilla Firebird'),

            array('(mozilla sunbird)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Mozilla Sunbird'),

            array('(amigavoyager)/{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'AmigaVoyager'),

            array('(ibrowse)[]{0,1}[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'IBrowse'),

            array('(icab)[]{0,1}[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'iCab'),

            array('(itunes)[]{0,1}[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'iTunes'),

            array('(galeon)/([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2})', 'Galeon'),

            array('(chimera)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Chimera'),

            array('(camino)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Camino'),

            array('(shiira)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Shiira'),

            array('(safari)/{0,1}([0-9]{1,3}[.0-9]{0,3}[.0-9]{0,3})', 'Safari'),

            array('(avantgo) ([0-9]{1,2}\.[0-9]{1,2})', 'AvantGo'),

            array('(epiphany)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Epiphany'),

            array('(dillo)/([0-9]{1,2}\.[0-9]{1,2}\.[0-9]{1,2})', 'Dillo'),

            array('(konqueror)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Konqueror'),

            array('(elinks)[/]{1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'ELinks'),

            array('(lynx)[/]{1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Lynx'),

            array('(elinks \()([0-9]{1,2}\.[0-9]{1,2}[.]{0,1}[rcpe]{0,3}[0-9]{1,2})', 'ELinks'),

            array('(links \()([0-9]{1,2}\.[0-9]{1,2}[.]{0,1}[rcpe]{0,3}[0-9]{1,2})', 'Links'),

            array('(netscape)[]{0,1}[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Netscape'),

            array('(mozilla)/([0-9]{1,2}\.[0-9]{1,2}).*(rv:)([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Mozilla'),

            array('(mozilla)/([0-9]{1,2}\.[0-9]{1,2}).*(MSIE) ([0-9]{1,2}\.[0-9]{1,2}[a-z]{0,1})', 'Internet Explorer'),

            array('(MSIE)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[a-z]{0,1})', 'Internet Explorer'),

            array('(amigavoyager)()', 'AmigaVoyager'),

            array('(voyager)()', 'AmigaVoyager'),

            array('(ibrowse)()', 'IBrowse'),

            array('(konqueror)()', 'Konqueror'),

            array('(antfresco)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'ANTFresco'),

            array('(astra)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Astra'),

            array('(aweb)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,4})', 'AmigaWeb'),

            array('(curl)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Curl'),

            array('(getright)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'GetRight'),

            array('(java)[]{0,1}[/]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'Java'),

            array('(Mozilla)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2})', 'Netscape'),

            array('(semc-browser)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'SEMC-Browser'),

            array('(semc-browser/symbian)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'SEMC-Browser'),

            array('(up.browser)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2}[.0-9]{0,2})', 'UP.Browser'),

            array('(up.link)[/]{0,1}[]{0,1}([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2}[.0-9]{0,2})', 'UP.Link'),

            array('(netfront)/([0-9]{1,2}\.[0-9]{1,2}[.0-9]{0,2})', 'NetFront'));


        static protected $tbld = array(

            array('(Alcatel-BE4/1.0)', 'Alcatel', 'One Touch 301'),

            array('(Alcatel-BE4/2.0)', 'Alcatel', 'One Touch 301'),

            array('(Alcatel-BF3/1.0)', 'Alcatel', 'One Touch 311'),

            array('(Alcatel-BG3-color/1.0)', 'Alcatel', 'One Touch 332'),

            array('(AlcOT500 UP)', 'Alcatel', 'One Touch 500'),

            array('(Alcatel-BE5/)', 'Alcatel', 'One Touch 501'),

            array('(Alcatel-BF4/1)', 'Alcatel', 'One Touch 511'),

            array('(Alcatel-BF4/2)', 'Alcatel', 'One Touch 512'),

            array('(Alcatel-BG3/1.0)', 'Alcatel', 'One Touch 525'),

            array('(Alcatel-BF5/1.0)', 'Alcatel', 'One Touch 715'),

            array('(Alcatel-BH4R/1.0)', 'Alcatel', 'One Touch 735i'),

            array('(Alcatel-BE3/1.0)', 'Alcatel', 'One Touch DB@'),

            array('(Alcatel-BH4/1.0)', 'Alcatel', 'One Touch 535'),

            array('(Alcatel-TH4/1.0)', 'Alcatel', 'One Touch 756'),

            array('(BENQ-Athena/)', 'BenQ', 'Athena S830C'),

            array('(BENQ-Morpheus/)', 'BenQ', 'Morpheus'),

            array('(BENQ-NIKE)', 'BenQ', 'Nike1 S660C'),

            array('(BenQ P30/)', 'BenQ', 'P30'),

            array('(UPG1 UP/)', 'Handspring', 'Blazer'),

            array('(LGE-)([a-z0-9]{1,10})', 'LG', '@'),

            array('(LGE/)([a-z0-9]{1,10})', 'LG', '@'),

            array('(LG)[/]([a-z0-9]{1,10})[/]', 'LG', '@'),

            array('(LG)[]([a-z0-9]{1,10})', 'LG', '@'),

            array('(LG-)([a-z0-9]{1,10})', 'LG', '@'),

            array('(LG)([a-z0-9]{1,10})[/]', 'LG', '@'),

            array('(MOT-D5/)','Motorola', 'T191'),

            array('(MOT-E8/)','Motorola', 'T192m'),

            array('(MOT-F5/)','Motorola', 'T193'),

            array('(MOT-T280M/)','Motorola', 'T820i'),

            array('(MOT-1.2.2/)','Motorola', 'T720'),

            array('(MOT-C4/)', 'Motorola', 'V50'),

            array('(MOT-PHX)', 'Motorola', 'V60'),

            array('(MOT-V60M/)', 'Motorola', 'V60i'),

            array('(MOT-MCCC/)','Motorola', 'V2267'),

            array('(MOT-AF/)','Motorola', 'Ti260'),

            array('(MOT-PAN4)', 'Motorola', 'T280'),

            array('(MOT-MCCA)', 'Motorola', 'P8767'),

            array('(MOT-TA02/)', 'Motorola', 'C330'),

            array('(MOT-)([a-z0-9]{1,10})[/]', 'Motorola', '@'),

            array('(Motorola-)([a-z0-9]{1,10})', 'Motorola', '@'),

            array('(Motorola )([a-z0-9]{1,10})', 'Motorola', '@'),

            array('(MOT-)([a-z0-9]{1,10})', 'Motorola', '@'),

            array('(NOKIA-RH-44/)', 'Nokia', '3586i'),

            array('(NokiaN-Gage)','Nokia', 'N-Gage'),

            array('(Nokia)([a-z0-9]{1,10})[/]', 'Nokia', '@'),

            array('(Nokia)[]{0,1}([a-z0-9]{1,10})[]{0,1}', 'Nokia', '@'),

            array('(Panasonic-)([a-z0-9]{1,10})', 'Panasonic', '@'),

            array('(PHILIPS)[]([a-z0-9]{1,10})', 'Philips', '@'),

            array('(PHILIPS-)([[:space:]a-z0-9]{1,10})', 'Philips', '@'),

            array('(SAGEM-)([-a-z0-9]{1,10})', 'Sagem', '@'),

            array('(SHARP-)([-a-z0-9]{1,10})', 'Sharp', '@'),

            array('(SAMSUNG-)([-a-z0-9]{1,10})', 'Samsung', '@'),

            array('(SEC-)([a-z0-9]{1,10})', 'Samsung', '@'),

            array('(SIE-)([a-z0-9]{1,10})[/]', 'Siemens', '@'),

            array('(SonyEricsson)[]{0,1}([a-z0-9]{1,10})[/]{0,1}', 'SonyEricsson', '@'),

            array('(Ericsson)[]{0,1}([a-z0-9]{1,10})[/]{0,1}', 'SonyEricsson', '@'),

            array('(Telit_Mobile_Terminals-GM)([a-z0-9]{1,10})', 'Telit', '@'),

            array('(Sanyo-)([a-z0-9]{1,10})[/]', 'Sanyo', '@'),

            array('(BlackBerry)([a-z0-9]{1,10})[/]', 'BlackBerry', '@'),

            array('(MobilePhone )([-m0-9]{1,10})[/]', 'Sanyo', '@'),

            array('(MobilePhone )([-scp0-9]{1,10})[/]', 'Sanyo', '@'));


    }


    class ScoutAgent extends ScoutAgent_definitions

    {

        // - set by user -

        private $user_agent = null;


        // -- set by class -

        private $user_browser = null;

        private $user_system = null;


        // ---

        private function _get_browser_addon()

        {

            while (list(,$addon) = each(parent::$tblb))

            {

                if (eregi($addon[0], $this-user_agent, $wersja))

                {

                    return $addon[1];

                }

            }

            return null;

        }


        private function _get_browser()

        {

            while (list(,$browser) = each (parent::$tblc))

            {

                if (eregi($browser[0], $this-user_agent, $wersja))

                {

                    $addon = ($browser[1] == 'Internet Explorer') ? $this-_get_browser_addon() : null;

                    if (!isset($browser[2]))

                    {

                        $browser[2] = false;

                    }

                    $this-user_browser = array('name' = $browser[1], 'addon' = $addon, 'version' = array_pop($wersja), 'bot' = $browser[2]);

                    return;

                }

            }

            $this-user_browser = false;

        }


        public function is_browser()

        {

            if (!isset($this-user_browser))

            {

                $this-_get_browser();

            }

            return is_array($this-user_browser);

        }


        public function browser($case = '')

        {

            if (!$this-is_browser())

            {

                return;

            }


            switch (strtolower($case))

            {

                case 'name' : return $this-user_browser['name']; break;

                case 'addon' : return $this-user_browser['addon']; break;

                case 'version' : return $this-user_browser['version']; break;

                default :

                    $out = $this-user_browser['name'].' '.$this-user_browser['version'];

                    if (!empty($this-user_browser['addon']))

                    {

                        $out .= ' ('.$this-user_browser['addon'].')';

                    }

                    return $out;

                    break;

            }

        }


        private function _get_system()

        {

            while (list(,$os) = each(parent::$tbla))

            {

                if (eregi($os[0], $this-user_agent, $wersja))

                {

                    $version = ($os[2] == '@') ? array_pop($wersja) : $os[2];


                    $this-user_system = array('name' = $os[1], 'version' = $version);


                    if ($os[1].$version == 'WindowsCE')

                    {

                        $this-_get_mobile();

                    } else

                    if ($os[1] == 'SymbianOS')

                    {

                        $this-_get_mobile();

                    }

                    return;

                }

            }


            if (!$this-_get_mobile())

            {

                $this-user_system = false;

            }

        }


        public function is_os()

        {

            if (!isset($this-user_system))

            {

                $this-_get_system();

            }

            return is_array($this-user_system);

        }


        public function os($case = '')

        {

            if (!$this-is_os())

            {

                return;

            }


            switch (strtolower($case))

            {

                case 'name' : return $this-user_system['name']; break;

                case 'version' : return $this-user_system['version']; break;

                default :

                    return $this-user_system['name'].' '.$this-user_system['version'];

                    break;

            }

        }


        private function _get_mobile()

        {

            while (list(,$mobile) = each(parent::$tbld))

            {

                if (eregi($mobile[0], $this-user_agent, $model))

                {

                    $version = ($mobile[2] == '@') ? array_pop($model) : $mobile[2];

                    if ($mobile[1] == 'Samsung')

                    {

                        if (eregi('(SGH){1}[-]{0,1}([a-z0-9]{2,6})', $version, $fix))

                        {

                            $version = $fix[2];

                        } else

                        if (eregi('(SPH){1}[-]{0,1}([a-z0-9]{2,6})', $version, $fix))

                        {

                            $version = $fix[2];

                        }

                    }

                    $this-user_system['vendor'] = $mobile[1];

                    $this-user_system['model'] = $version;

                    $this-user_system['is_mobile'] = true;

                    return true;

                }

             }

             return false;

        }


        public function is_mobile()

        {

            if (!isset($this-user_system))

            {

                $this-_get_system();

            }

            return ($this-user_system['is_mobile']);

        }


        public function mobile($case = '')

        {

            if (!$this-is_mobile())

            {

                return;

            }

            switch (strtolower($case))

            {

                case 'vendor' : return $this-user_system['vendor']; break;

                case 'model' : return $this-user_system['model']; break;

                case 'os' : return (isset($this-user_system['name'])) ? $this-user_system['name'].' '.$this-user_system['version'] : ''; break;

                default :

                    return $this-user_system['vendor'].' '.$this-user_system['model'];

                    break;

            }

        }


        public function set_useragent($user_agent)

        {

            $this-user_system = null;

            $this-user_browser = null;

            $this-user_agent = $user_agent;

            reset(parent::$tbla);

            reset(parent::$tblb);

            reset(parent::$tblc);

            reset(parent::$tbld);

        }


        public function get_useragent()

        {

            return $this-user_agent;

        }


        public function get_screen($redirect = null)

        {

            if (empty($redirect))

            {

                $redirect = $_SERVER['PHP_SELF'];

            }


            if (isset($_COOKIE['scout_width']))

            {

                return;

            }


            $script = ''."\n";

            print $script;

        }


        public function screen($case = '')

        {

            switch (strtolower($case))

            {

                case 'width' : return $_COOKIE['scout_width']; break;

                case 'height' : return $_COOKIE['scout_height']; break;

                case 'depth' : return $_COOKIE['scout_depth']; break;

                default :

                    $out = $_COOKIE['scout_width'].'x'.$_COOKIE['scout_height'].' ('.$_COOKIE['scout_depth'].'bit)';

                    return $out;

                    break;

            }

        }


        public function bot()

        {

            if (!$this-is_bot())

            {

                return;

            }

            return $this-user_browser['name'];

        }


        public function is_bot()

        {

            if (!isset($this-user_browser))

            {

                $this-_get_browser();

            }

            return ($this-user_browser['bot']);

        }


        public function __construct()

        {

            $this-user_agent = $_SERVER['HTTP_USER_AGENT'];

        }


    }


?

Używając dema Opery Mini zauważyłem ,że po wpisaniu adresu onet.pl jest się przekierowywaniym na adres http://lajt.onet.pl/?x-returl=http://www.onet.pl/ a nie samo lajt.onet.pl. Dodatkowo w źródle strony był ten oto URL http://lajt.onet.pl/redir200.rd?x-returl=http://www.onet.pl/ Po otworzeniu go wyskakuje komunikat lajtoo7.th.jpg

Byłbym bardzo wdzięczny gdyby ktoś napisał coś na temat automatycznego przekierowania. Może to co napisałem jakoś pomorze.


(adpawl) #4

Zobacz: http://www.andymoore.info/php-to-detect-mobile-phones/


(system) #5

Dzieki adpawl :slight_smile: Teraz działą. Nie wiem tylko czemu nie działa mi

function detect_iphone(){

  if(eregi('iphone',$_SERVER['HTTP_USER_AGENT'])){

    return true;

  }

}

Wyskakuje błąd, coś ze znakiem }, ale jak usunie się całą tą funkcję to wszystko działa ok. Nie wiem tylko czy wykrywa iPhona bo nie mam jak sprawdzic


(adpawl) #6

A no dlatego, że wyżej jest już zadeklarowana funkcja o tej samej nazwie:

Zatem ta ostatnia jest zbedna, bo wcześniejsza wykrywa już iphone lub ipod.

W tej drugiej zmień np. function detect_iphone(){ na function detect_iphone2(){ i przejdzie bez błędu.