Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: HTTP_USER_AGENT. Не верный результат в хроме

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Помогите разобраться!!!
ADIOS
Отправлено: 25 Апреля, 2013 - 18:09:59
Post Id



Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Май 2010  
Откуда: Россия, Калуга


Помог: 2 раз(а)




Всем привет!!!

В инете на ковырял класс который который определяет браузер, версию браузера и платформу через HTTP_USER_AGENT.

Но этот класс определяет только саму платформу. Например: Windows и всё, решил не много апгрейдить класс, чтобы он еще версию винды показывал.. Вообщем часть функции класса выглядит так:
PHP:
скопировать код в буфер обмена
  1.  
  2. if( stripos($this->_agent, 'Windows') !== false or stripos($this->_agent, 'win') !== false) {
  3.                                 if(stripos($this->_agent, "NT 6.2") !== false)$this->_platform = self::PLATFORM_WINDOWS_8;
  4.                             if(stripos($this->_agent, "NT 6.1") !== false)$this->_platform = self::PLATFORM_WINDOWS_7;
  5.                                 if(stripos($this->_agent, "NT 6.0") !== false)$this->_platform = self::PLATFORM_WINDOWS_VISTA;
  6.                                 if(stripos($this->_agent, "NT 5.2") !== false)$this->_platform = self::PLATFORM_WINDOWS_2003;
  7.                                 if(stripos($this->_agent, "NT 5.1") !== false  || stripos($this->_agent, "Win32") !== false || stripos($this->_agent, "XP"))$this->_platform = self::PLATFORM_WINDOWS_XP;
  8.                                 if(stripos($this->_agent, "NT 5.0") !== false)$this->_platform = self::PLATFORM_WINDOWS_2000;
  9.                                 if(stripos($this->_agent, "NT 4.0") !== false || stripos($this->_agent, "3.5") !== false)$this->_platform = self::PLATFORM_WINDOWS_NT;
  10.                                 if(stripos($this->_agent, "Me") !== false)$this->_platform = self::PLATFORM_WINDOWS_Me;
  11.                                 if(stripos($this->_agent, "98") !== false)$this->_platform = self::PLATFORM_WINDOWS_98;
  12.                                 if(stripos($this->_agent, "95") !== false)$this->_platform = self::PLATFORM_WINDOWS_95;
  13.                     }
  14.  


Проверяю через браузер:
IE - windows 7 -- норм
Firefox - windows 7 -- норм
Opera - windows 7 -- норм
Chrome - windows Me -- что за н... Не понял какой еще миллениум...

Почему и как эта запись в хроме Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31 выдает windows Me?

Может я что то не так делаю?


-----
Не откладывай работу на завтра, от которой можно вообще отказаться
 
 Top
spsu
Отправлено: 25 Апреля, 2013 - 18:16:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 176
Дата рег-ции: Нояб. 2012  


Помог: 3 раз(а)




Цитата:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31

stripos регистронезависима.
10 строка в коде.
 
 Top
ADIOS
Отправлено: 25 Апреля, 2013 - 18:26:16
Post Id



Гость


Покинул форум
Сообщений всего: 96
Дата рег-ции: Май 2010  
Откуда: Россия, Калуга


Помог: 2 раз(а)




spsu пишет:
Цитата:
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31

stripos регистронезависима.
10 строка в коде.


вот где собака зарыта....

функция strpos вроде как решила данную проблему...


-----
Не откладывай работу на завтра, от которой можно вообще отказаться
 
 Top
esterio
Отправлено: 25 Апреля, 2013 - 20:07:28
Post Id



Активный участник


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


Помог: 127 раз(а)




Доверять все таки не стоит. Его легко подделать
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB