Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/67: Рейтинг темы: голосов - 67, средняя оценка - 4.60
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5

Определяем с какого браузера зашел пользователь на сайт!

09.06.2011, 01:09. Показов 13570. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, написал скрипт который определяет с какого браузера мы вошли на сайт, он работает, но мне кажется что это не очень таки правильно сделанно, помогите пожалуйста советом по улучшению определению браузера!!

вот мой код:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php 
$browser_string = $_SERVER["HTTP_USER_AGENT"];
 
$opera='Opera';$operaLimit=strlen($opera);
$operaMini='OperaMini';$operaMiniLimit=strlen($operaMini);
$fireFox='Firefox';$fireFoxLimit=strlen($fireFox);
$chrome='Chrome';$chromeLimit=strlen($chrome);
$internetExplorer='MSIE';$internetExplorerLimit=strlen($internetExplorer);
 
$limit=strlen($browser_string);
for($i=0;$i<=$limit;$i++)
{
    $thisBrowserOpera=substr($browser_string, $i, $operaLimit);
    if($thisBrowserOpera==$opera){$browser=$opera;break;}
    
    $thisBrowseroperaMini=substr($browser_string, $i, $operaMiniLimit);
    if($thisBrowseroperaMini==$operaMini){$browser=$operaMini;break;}
    
    $thisBrowserfireFox=substr($browser_string, $i, $fireFoxLimit);
    if($thisBrowserfireFox==$fireFox){$browser=$fireFox;break;}
    
    $thisBrowserchrome=substr($browser_string, $i, $chromeLimit);
    if($thisBrowserchrome==$chrome){$browser=$chrome;break;}
    
    $thisBrowserinternetExplorer=substr($browser_string, $i, $internetExplorerLimit);
    if($thisBrowserinternetExplorer==$internetExplorer){$browser=$internetExplorer;break;}
    
}
 
echo'<script type="text/javascript"> alert("Ваш браузер: '.$browser.'") </script>';
 
?>
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2011, 01:09
Ответы с готовыми решениями:

Если пользователь зашёл на сайт через мозиллу то подключать css стили другие
Здравствуйте как сделать так чтобы если пользователь зашёл на сайт именно через мозиллу то подключались стили для сайта другие?

Как узнать, с какого браузера заходят на сайт?
здравствуйте, мне нужно узнать с какого браузера заходит юзер а если точнее то со смартфона или со стационарного компа заранее спасибо

Авторизованный пользователь после закрытия браузера снова посещает сайт
Здравствуйте ! Нужна небольшая помощь для решения такой проблемы: Есть небольший проект на MVC 5 использую Individual User Accounts также...

9
692 / 383 / 51
Регистрация: 22.01.2009
Сообщений: 1,135
09.06.2011, 07:14
1. браузеров намного больше че в скрипте, поэтому код подходит лишь для части поситителей
2. в php есть get_browser
1
 Аватар для __PION__
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
09.06.2011, 09:25
чем те не нравится
Цитата Сообщение от Sanu0074 Посмотреть сообщение
$_SERVER["HTTP_USER_AGENT"]
Он же и показывает браузер

Добавлено через 15 секунд
чем те не нравится
Цитата Сообщение от Sanu0074 Посмотреть сообщение
$_SERVER["HTTP_USER_AGENT"]
Он же и показывает браузер
0
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
09.06.2011, 09:55  [ТС]
Цитата Сообщение от Love_and_Peace Посмотреть сообщение
чем те не нравится

Он же и показывает браузер

Добавлено через 15 секунд
чем те не нравится

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

Добавлено через 3 минуты
Цитата Сообщение от FunDuck Посмотреть сообщение
1. браузеров намного больше че в скрипте, поэтому код подходит лишь для части поситителей
2. в php есть get_browser
впринципе get_browser тоже самое, но немного удобнеее, мало чем отличается от user_agent.... буду наверно пользоваться всетаки своим кодом
0
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
09.06.2011, 20:04  [ТС]
Немогу опредилить OperaMini, как правильно определить что пользователь зашел с OperaMini? мой пример выше - неработает, я пробовал менять местами if, пробовал else if, и ничего не выходит... operaMini распознается как обычная опера... ПОМОГИТЕ с решением проблемы!!!
убираю вобще определение обычной оперы, всёравно оперу мини не находит.....



Добавлено через 6 минут
Цитата Сообщение от Sanu0074 Посмотреть сообщение
Немогу опредилить OperaMini, как правильно определить что пользователь зашел с OperaMini? мой пример выше - неработает, я пробовал менять местами if, пробовал else if, и ничего не выходит... operaMini распознается как обычная опера... ПОМОГИТЕ с решением проблемы!!!
убираю вобще определение обычной оперы, всёравно оперу мини не находит.....

вынес определение оперы мини в отдельный цикл, и вместо OperaMini написал Mini, теперь пашет
0
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
16.07.2011, 01:49  [ТС]
А что быстрее работать будет, данный метод? или с помощью регулярного выражения?
0
 Аватар для alcosport
2 / 2 / 0
Регистрация: 11.07.2011
Сообщений: 16
16.07.2011, 05:22
Так вроде меньше писать:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
function getBrowser() {
    $agent = $_SERVER['HTTP_USER_AGENT'];
    if(preg_match('/MSIE/i',$agent) && !preg_match('/Opera/i',$agent)) { $browser = 'Internet Explorer'; } 
    elseif(preg_match('/Firefox/i',$agent)) { $browser = 'Mozilla Firefox'; } 
    elseif(preg_match('/Chrome/i',$agent)) { $browser = 'Google Chrome'; } 
    elseif(preg_match('/Safari/i',$agent)) { $browser = 'Apple Safari'; } 
    elseif(preg_match('/Opera/i',$agent)) { $browser = 'Opera'; } 
    elseif(preg_match('/Opera Mini/i',$agent)) { $browser = 'Opera Mini'; } 
    elseif(preg_match('/Netscape/i',$agent)) { $browser = 'Netscape'; } 
    else { $browser = 'Неизвестно'; }
    echo '<script type="text/javascript"> alert("Ваш браузер: '.$browser.'") </script>';
}
getBrowser();
?>
2
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
16.07.2011, 12:15
PHP
1
if ($_SERVER['HTTP_USER_AGENT'])?$browser=get_browser['parent'];
всё делается в одну строчку =)
0
 Аватар для Sanu0074
59 / 59 / 16
Регистрация: 14.06.2010
Сообщений: 1,190
Записей в блоге: 5
16.07.2011, 12:37  [ТС]
Цитата Сообщение от borovik Посмотреть сообщение
PHP
1
if ($_SERVER['HTTP_USER_AGENT'])?$browser=get_browser['parent'];
всё делается в одну строчку =)
и что это за строка?
0
210 / 204 / 52
Регистрация: 25.07.2010
Сообщений: 1,162
16.07.2011, 17:27
я же написал -_-
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2011, 17:27
Помогаю со студенческими работами здесь

Может ли сайт отследить, что пользователь берет его html код из браузера?
Например, Пользователь открыл какой-либо сайт и говорит: просмотр html кода Может ли сайт отследить это действие?

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

Определить какой пользователь зашел в систему!
Всем доброго времени суток! Я хочу определить кто из зарегистрированных пользователей зашел в систему. Работаю с Membership. В...

Как определить, на какой домен зашел пользователь?
день добрый. в организации есть 1сервер и 2 web-страницы. В хостах(hosts) у юзера записи типа: 192.168.1.57 bux.local.ru ...

На всех страницах отображать, под кем зашел пользователь
Заранее извиняюсь, если неправильно назвал тему. В общем проблема такова. Даже не знаю, как правильно сформировать вопрос. У меня есть сайт...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru