Как узнать с чего заходил юзер?

Достаточно частая задачка,  для программиста, занимающегося разработкой сайтов для мобильных. Как определить с чего заходил пользователь, с компьютера или с мобильного телефона?

Однозначного ответа на этот вопрос нет,  да и быть не может. На текущий момент пользуюсь таким простецким решением.

You may also like...

  • Wind

    Ну и отловишь ты этим кодом только дудки на Windows CE. А как с остальными??

    • admin

      как раз дудки с CE проигнорятся, что и требуется

  • Nu3oN

    Юзай in_array() чем обрабатывать все это в цикле!

    • согласен
      древний код, счас поправим

  • Nu3oN

    Можно даже так хотя бы
    [code]

    ?>
    [/code]
    как то так)))

    • Nu3oN

      Блин, че то я накосипорил в примере гг

    • Nu3oN

      [code]

      [/code]

  • Хорошая вещь, особенно когда нужно просто «или…или», без точного определения устройства по user-agent.

  • Хорошая вещь, особенно когда нужно просто «или…или», без точного определения устройства по user-agent.

    • Именно так.
      Для большего скрипт неприменим, слишком высока погрешность.

      п.с.
      заглянул вам в блог, нашел для себя кое что полезное.
      Но дизайн вырвиглазен ,читать невозможно, спасает только плагин Readability

      • Спасибо, пристыдили) Обещаю и очень постараюсь исправиться в плане дизайна.

  • Qwerty

    http://ru.wikipedia.org/wiki/User_Agentу андроидов в строке есть слово Linux, так что мне кажется, для этого случая нужно отдельно проверять

    • Кстати да. Код пришел еще с доандроидных времен.
      Видимо надо править с учетом нынешних реалий. Вероятно и у N900 может Linux присутствовать.

  • Колян

    можно и вот такой функцией определить: 

    [code]
    function check_smartphone() {
     
        $phone_array = array(‘iphone’, ‘android’, ‘pocket’, ‘palm’, ‘windows ce’, ‘windowsce’, ‘cellphone’, ‘opera mobi’, ‘ipod’, ‘small’, ‘sharp’, ‘sonyericsson’, ‘symbian’, ‘opera mini’, ‘nokia’, ‘htc_’, ‘samsung’, ‘motorola’, ‘smartphone’, ‘blackberry’, ‘playstation portable’, ‘tablet browser’);
        $agent = strtolower( $_SERVER[‘HTTP_USER_AGENT’] );
     
        foreach ($phone_array as $value) {
     
            if ( strpos($agent, $value) !== false ) return true;
     
        }
     
        return false;
     
    }
     
    [/code]