ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Определение браузера
  #1  
Старый 09.01.2009, 16:00
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
Question Определение браузера

Каким способом можно сделать так, чтобы когда пользователь заходит на сайт с помощью Internet Explorer, его "кидало" в папку /ie/

Когда через Opera в /op/
Когда через Firefox в/fx/

Если другой браузер, то например по умолчанию в /ie/
 
Ответить с цитированием

  #2  
Старый 09.01.2009, 16:19
Аватар для oRb
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Только как пример. Ниже кусок кода из своего старого скрипта:
PHP код:
<?php
$agent 
$_SERVER['HTTP_USER_AGENT'];
if(
preg_match("!(Opera[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "opera";
}
elseif(
preg_match("!(Firefox[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "firefox";
}
elseif (
preg_match("!MSIE([\s\d\./]+)!msi"$agent$math))
{
    
$agent "Internet Explorer ".$math[1];
    
$mysqlAgent "msie";
}
elseif (
preg_match("!(Konqueror[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "konqueror";
}
elseif (
preg_match("!(Iceweasel[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "iceweasel";
}
elseif (
preg_match("!(Lynx[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "lynx";
}
elseif (
preg_match("!(Netscape[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "netscape";
}
elseif (
preg_match("!(Safari[\s\d\./]+)!msi"$agent$math))
{
    
$agent $math[1];
    
$mysqlAgent "safari";
}
$location "/";
switch(
$mysqlAgent)
{
    case 
"opera"$location .= "opera/";break;
    case 
"firefox"$location .= "firefox/";break;
    case 
"msie"$location .= "msie/";break;
    default: 
$location .= "msie/";break;
}
header('Location: '.$location);
?>
 
Ответить с цитированием

  #3  
Старый 09.01.2009, 16:21
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
По умолчанию

Здорово)
буду пробовать
 
Ответить с цитированием

  #4  
Старый 09.01.2009, 16:22
Аватар для Sharky
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

Сначала определяем User Agent
PHP код:
$user_agent getenv("HTTP_USER_AGENT"); 
Затем вот функция вытягивания из User Agent браузера ( список можно расширить... коды браузеров ищи сам)
PHP код:
function detect_browser()
{
    global 
$user_agent$browser;
    
    if (
strstr($user_agent"Nav") || 
        
strstr($user_agent"Netscape"))      $browser "Netscape";
    elseif (
strstr($user_agent"Firefox"))   $browser "Firefox";
    elseif (
strstr($user_agent"Lynx"))      $browser "Lynx";
    elseif (
strstr($user_agent"Opera"))     $browser "Opera";
    elseif (
strstr($user_agent"WebTV"))     $browser "WebTV";
    elseif (
strstr($user_agent"Konqueror")) $browser "Konqueror";
    elseif (
strstr($user_agent"MSIE 6"))    $browser "Internet Explorer 6";
    elseif (
strstr($user_agent"MSIE 7"))    $browser "Internet Explorer 7";
    else                                      
$browser "Other";
    
    return 
0;

ну и на последок вызываем функцию и делаем с определённым брауезом что нам нужно
PHP код:
detect_browser();
if (
$browser == "Internet Explorer 6")
{
header('Location: ./ie6/');

по желанию фуннкуи. можешь убрать и замешать всё в единую кучу

Последний раз редактировалось Sharky; 09.01.2009 в 16:25..
 
Ответить с цитированием

  #5  
Старый 09.01.2009, 16:33
Аватар для oRb
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Sharky, мини поправочка:
оперу стоит определять выше всех, тк она может маскироваться под ие и лису.
 
Ответить с цитированием

  #6  
Старый 09.01.2009, 16:39
Аватар для Sharky
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

и чё =) если она будет маскриоваться то по юзер агенту ты вобще никак её не определишь
 
Ответить с цитированием

  #7  
Старый 09.01.2009, 21:58
Аватар для oRb
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме:
7875940

Репутация: 2362
По умолчанию

Цитата:
Сообщение от Sharky  
и чё =) если она будет маскриоваться то по юзер агенту ты вобще никак её не определишь
Смотри
Нормальный юзер агент оперы:
Opera/10.00 (X11; Linux i686 ; U; en) Presto/2.2.0
Маскировка под лису:
Mozilla/5.0 (X11; Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 10.00
Маскировка под осла:
Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686 ; en) Opera 10.00

Те при маскировки опера всегда себя дописывает в конец. И если прочекать лису раньше оперы, то скрипт будет думать, что клиент - лиса.
 
Ответить с цитированием

  #8  
Старый 09.01.2009, 22:12
Аватар для geforse
geforse
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме:
5365841

Репутация: 712


Отправить сообщение для geforse с помощью ICQ
По умолчанию

oRb
Ещё раз спасибо за скрипт)) всё работает
 
Ответить с цитированием

  #9  
Старый 09.01.2009, 22:58
Аватар для Sharky
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

Цитата:
Сообщение от oRb  
Смотри
Нормальный юзер агент оперы:
Opera/10.00 (X11; Linux i686 ; U; en) Presto/2.2.0
Маскировка под лису:
Mozilla/5.0 (X11; Linux i686 ; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 10.00
Маскировка под осла:
Mozilla/4.0 (compatible; MSIE 6.0; X11; Linux i686 ; en) Opera 10.00

Те при маскировки опера всегда себя дописывает в конец. И если прочекать лису раньше оперы, то скрипт будет думать, что клиент - лиса.
спасибо за информацию =) не знал что в конце дописывает
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вышла альфа-версия браузера Firefox 3.0 KoTeG Мировые новости 2 11.12.2006 16:48
Firefox 2.0 (маленький обзор нового браузера ) Серый Soft - Windows 16 23.11.2006 18:37
Вышла обновлённая версия браузера Opera KoTeG Мировые новости 5 27.09.2006 09:50
Вышла первая общедоступная бета-версия браузера Opera 9. Allen Мировые новости 2 22.04.2006 00:20
Вышла обновлённая версия браузера Opera dinar_007 Мировые новости 2 21.02.2006 22:07



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ