UserAgent'ы пользователей [удаленный]

Статус
В этой теме нельзя размещать новые ответы.

Exile

Администратор
#1
Пользователь Exile разместил новый ресурс:


Please Login or Register to view hidden text.

- Добавляет на странице «Кто сейчас на форуме» UserAgent'ы пользователей

Название: UserAgent-ы пользователей
Автор: Gemini_13 <gemini_13@torba.su>
Описание: Добавляет на...

Please Login or Register to view hidden text.

 

Exile

Администратор
#2
Восстановленный ресурс. Возможно, требует небольшие адаптации под новые ревизии.
 

ВаленокPC

Пользователь
#3
небольшое дополнение для мода! Добавь в комплект.
Это засунуть в function.php
PHP:
function user_browser($useragent)
 
{
 
    $arr = array("#.*MSIE (\S*);.*#si" => "Internet Explorer \\1", "#.*(Opera.*Version|Opera)/(\S*).*#si" => "Opera \\2", "#.*Navigator/(\S*).*#si" => "Navigator \\1", "#.*Flock/(\S*).*#si" => "Flock \\1", "#.*Firefox/(\S*).*#si" => "Firefox \\1", "#.*Chrome/(\S*).*#si" => "Chrome \\1", "#.*Version/(\S*).*Safari.*#si" => "Safari \\1", "#.*Safari/(\S*).*#si" => "Safari \\1", "#.*K-Meleon.*#si" => "K-Meleon", "#.*SeaMonkey.*#si" => "SeaMonkey", "#.*Camino.*#si" => "Camino", "#.*Epiphany.*#si" => "Epiphany", "#.*America Online Browser.*#si" => "America Online Browser", "#.*avantbrowser.*#si" => "Avant Browser.");
 
    $result = preg_replace(array_keys($arr), $arr, $useragent);
 
    $browser = $result == $useragent ? 'Неизвестный': $result;
 
    return $browser;
 
}
Нужно заменить в файле viewonline.php.

Это

HTML:
'USERAGENT'  => $row['session_useragent']
на это

HTML:
 'USERAGENT'  => user_browser($row['session_useragent'])
 

JDVU

Разработчик
#4
функцию можно сократить правильно используя тернарный оператор
 

ВаленокPC

Пользователь
#6
В такой функции вообще больше половины браузеров уже устарели.
У меня нет возможности и времени проверять их на всех браузерах, но точно уверен что на основные он определяет правильно.

Да есть небольшая помарка, не хватает некоторых браузеров. В скором исправим все недочеты этой функции.
 

Exile

Администратор
#8
Ну, в таком случае Opera больше не основной браузер, ибо с момента перехода на Blink у нее больше нет Opera в useragent, и ее пользователи будут автоматически отнесены к пользователям хрома. Пример для новой оперы - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100 - следовательно строкой для поиска будет OPR, но никак не Opera.
 

ВаленокPC

Пользователь
#9
Ну, в таком случае Opera больше не основной браузер, ибо с момента перехода на Blink у нее больше нет Opera в useragent, и ее пользователи будут автоматически отнесены к пользователям хрома. Пример для новой оперы - Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.52 Safari/537.36 OPR/15.0.1147.100 - следовательно строкой для поиска будет OPR, но никак не Opera.
Это я знаю, я не переделывал эту функцию, а просто честно скопировал и подредактировал по это. как писал раньше сейчас у меня нет возможности протестировать её на разных браузерах и.т.д . Но в скором будущем надеюсь это сделать!
 

ВаленокPC

Пользователь
#10
Всем доброй ночи, вот немного правленая функция
PHP:
function user_browser($useragent)
{
    $arr = array(
            "#.*MSIE (\S*);.*#si" => "Internet Explorer \\1",
            "#.*Trident.*rv:([0-9.]+).*#si" => "Internet Explorer \\1",         
            "#.*(Opera.*Version|Opera|OPR)/(\S*).*#si" => "Opera \\2",
            "#.*Navigator/([0-9.]+).*#si" => "Navigator \\1",
            "#.*Nichrome/self/(\S*).*#si" => "Rambler Browser \\1",
            "#.*Flock/(\S*).*#si" => "Flock \\1",
            "#.*Firefox/(\S*).*#si" => "Firefox \\1",
            "#.*Chrome/(\S*).*#si" => "Chrome \\1",
            "#.*YaBrowser/(\S*).*#si" => "Yandex Browser \\1",
            "#.*Version/(\S*).*Safari.*#si" => "Safari \\1",
            "#.*Safari/([0-9.]+).*#si" => "Safari \\1",
            "#.*K-Meleon/([0-9.]+).*#si" => "K-Meleon\\1",
            "#.*SeaMonkey/([0-9.]+).*#si" => "SeaMonkey\\1",
            "#.*Camino/([0-9.]+).*#si" => "Camino\\1",
            "#.*Epiphany/([0-9.]+).*#si" => "Epiphany\\1",
            "#.*SmartTV.*#si" => "SmartTV WebBrowser",
            "#.*Palemoon/([0-9.]+).*#si" => "Palemoon Browser\\1",
    );
    $result = preg_replace(array_keys($arr), $arr, $useragent);
    return $browser = $result == $useragent ? "Неизвестный" : $result;
}
Исправлены недочеты.
Нет возможности проверить все браузеры!!!

Найдете ошибки пишите, будем править!
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху