Улучшить скрипт определения зашел с компа или с мобилы

Discussion in 'PHP' started by Ridikh, 4 Aug 2010.

  1. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    как сделать чтобы андроид телефоны на линуксе не приписывались к компам?

    и как думаете iPhone будет как комп считаться или как мобила?

    PHP:
    <?php 
    $h_ua 
    str_replace('windows ce'''strtolower($_SERVER['HTTP_USER_AGENT'])); 
    if ( 
        !
    $h_ua || 
        
    strpos($h_ua'windows') !== false    || 
        
    strpos($h_ua'linux') !== false    || 
        
    strpos($h_ua'bsd') !== false        || 
        
    strpos($h_ua'x11') !== false        || 
        
    strpos($h_ua'unix') !== false        || 
        
    strpos($h_ua'macintosh') !== false    || 
        
    strpos($h_ua'macos') !== false

        
    // it's computer
    } else { 
        
    // it's mobile phone

    ?>
     
    #1 Ridikh, 4 Aug 2010
    Last edited: 7 Aug 2010
  2. Gar|k

    Gar|k Moderator

    Joined:
    20 Mar 2009
    Messages:
    1,166
    Likes Received:
    266
    Reputations:
    82
    Ridikh
    не хочу тебя разочаровывать, но как бы все HTTP заголовки можно легко изменить...
     
    _________________________
  3. Ridikh

    Ridikh Member

    Joined:
    11 Nov 2007
    Messages:
    69
    Likes Received:
    7
    Reputations:
    0
    Ну этот скрипт будет использоваться, там где люди HTTP заголовки не подделывают :)
     
    1 person likes this.
  4. Dark_cracker

    Dark_cracker Member

    Joined:
    29 May 2009
    Messages:
    73
    Likes Received:
    8
    Reputations:
    1
    вот с ДЛЕ функиця
    PHP:
    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;

    }

     
    1 person likes this.