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 :: Разрешения

 PHP.SU

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


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

> Описание: Браузеры
maragon
Отправлено: 08 Июля, 2011 - 08:09:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011  


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




Копал в сторону HTTP_USER_AGENT, так и не получилось.
Хочу дать добро только для браузеров opera\chrome\ etc..
Как можно организовать без бд?


-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
DeepVarvar Супермодератор
Отправлено: 08 Июля, 2011 - 08:13:40
Post Id



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


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


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




Я видел у джумлы в движке достаточно полный (около 150) список браузеров.
В списке даже lynx есть и айпод.
Перечисление идет в виде массива.
Вам видимо тот же принцип.
 
 Top
White
Отправлено: 08 Июля, 2011 - 08:33:52
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


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




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. $browser = get_browser(null, true);
  3. echo $browser['browser'];
  4.  


-----
if(time()>1356048000) die();
 
 Top
grefon
Отправлено: 08 Июля, 2011 - 09:00:19
Post Id



Частый посетитель


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


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




White, эта штука есть на очень ограниченном количестве хостингов. Я в подобных ситуациях пользуюсь UASparser классом. Если нужно, распишу более подробно с примером.


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
White
Отправлено: 08 Июля, 2011 - 09:03:50
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


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




grefon пишет:
Если нужно, распишу более подробно с примером

любопытно, хотелось бы взглянуть
grefon пишет:
эта штука есть на очень ограниченном количестве хостингов

интересно, с чем связаны такие ограничения?


-----
if(time()>1356048000) die();
 
 Top
grefon
Отправлено: 08 Июля, 2011 - 09:24:58
Post Id



Частый посетитель


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


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




White пишет:
любопытно, хотелось бы взглянуть

Вот в работе: http://grefon[dot]com/primer/
Архив с исходником прикрепляю.

С помощью класса можно определить тип браузера и в зависимости от этого разрешать дальнейшие действия или нет.

White пишет:
интересно, с чем связаны такие ограничения?


Честно говоря не знаю. Когда-то сталкивался и из 5 хостингов только на одном функция работала корректно. Скорей всего из за того что хостеры не хотят следить за всяческими обновлениями browscap.ini.
Скачать файл: primer.rar
Скачан раз: 183


-----
____________________________________________________________________
Ну как то так, наверное.
http://grefon[dot]com
 
 Top
White
Отправлено: 08 Июля, 2011 - 10:15:51
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 830
Дата рег-ции: Июнь 2011  
Откуда: Днепропетровск


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




grefon пишет:
С помощью класса можно определить тип браузера и в зависимости от этого разрешать дальнейшие действия или нет.


даже проще, отредактировать userdata.ini, убрав оттуда все ненужные браузеры, и упростить класс
PHP:
скопировать код в буфер обмена
  1.  
  2. class UASparser
  3. {
  4.         public $cache_dir       = null;
  5.         public $useragent       = null;
  6.  
  7.         private $_data                  = array();
  8.         private $test                   = null;
  9.        
  10.         public function __construct() {
  11.         }
  12.  
  13.         public function Parse($useragent = null) {
  14.                 $match=false;
  15.                 $this->useragent = $_SERVER['HTTP_USER_AGENT'];
  16.                 $_data = $this->_loadData();
  17.                 if($_data) {
  18.  
  19.                         // crawler
  20.                         foreach ($_data['robots'] as $test) {
  21.                                 if ($test[0] == $useragent) {
  22.                                         $match=true;
  23.                                 }
  24.                         }
  25.                        
  26.                         // browser
  27.                         foreach ($_data['browser_reg'] as $test) {
  28.                                 if (@preg_match($test[0],$useragent)) {
  29.                                         $match=true;
  30.                                         break;
  31.                                 }
  32.                         }
  33.                 }
  34.                 return $match;
  35.         }
  36.  
  37.         private function _loadData() {
  38.                 if (file_exists($this->cacheDir.'/uasdata.ini')) {
  39.                         return @parse_ini_file($this->cacheDir.'/uasdata.ini', true);
  40.                 }
  41.                 else {
  42.                         die('ERROR: No datafile (uasdata.ini in Cache Dir), maybe update the file manually.');
  43.                 }
  44.         }
  45.  
  46.         public function SetCacheDir($cache_dir) {
  47.                 if (!is_writable($cache_dir)) {
  48.                         die('ERROR: Cache dir('.$cache_dir.') is not writable');
  49.                 }
  50.                 $cache_dir = realpath($cache_dir);
  51.                 $this->cacheDir = $cache_dir;
  52.         }
  53. }
  54.  


-----
if(time()>1356048000) die();
 
 Top
maragon
Отправлено: 08 Июля, 2011 - 10:26:59
Post Id



Посетитель


Покинул форум
Сообщений всего: 340
Дата рег-ции: Февр. 2011  


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




А проще вар-ы есть еще у кого? Хорошо


-----
https://vk[dot]com/tvoycase_ru - Твой чехол со своим дизайном
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB