ANTICHAT Forum
HOME FORUMS MEMBERS RECENT POSTS LOG IN  
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > PHP
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

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

Репутация: 712


Question Определение браузера

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

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

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

  #2  
Старый 09.01.2009, 16:19
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
С нами: 9477026

Репутация: 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
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
С нами: 9574565

Репутация: 712


По умолчанию

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

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

Репутация: 921


По умолчанию

Сначала определяем 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
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
С нами: 9477026

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

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

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

Репутация: 921


По умолчанию

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

  #7  
Старый 09.01.2009, 21:58
oRb
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
С нами: 9477026

Репутация: 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
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
С нами: 9574565

Репутация: 712


По умолчанию

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

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

Репутация: 921


По умолчанию

Цитата:
Сообщение от 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
Вышла обновлённая версия браузера 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 ™ © 2001- Antichat Kft.