Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

09.01.2009, 16:00
|
|
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме: 5365841
Репутация:
712
|
|
Определение браузера
Каким способом можно сделать так, чтобы когда пользователь заходит на сайт с помощью Internet Explorer, его "кидало" в папку /ie/
Когда через Opera в /op/
Когда через Firefox в/fx/
Если другой браузер, то например по умолчанию в /ie/
|
|
|

09.01.2009, 16:19
|
|
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);
?>
|
|
|

09.01.2009, 16:21
|
|
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме: 5365841
Репутация:
712
|
|
Здорово)
буду пробовать
|
|
|

09.01.2009, 16:22
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
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..
|
|
|

09.01.2009, 16:33
|
|
Members of Antichat - Level 5
Регистрация: 09.05.2008
Сообщений: 304
Провел на форуме: 7875940
Репутация:
2362
|
|
Sharky, мини поправочка:
оперу стоит определять выше всех, тк она может маскироваться под ие и лису.
|
|
|

09.01.2009, 16:39
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
921
|
|
и чё =) если она будет маскриоваться то по юзер агенту ты вобще никак её не определишь 
|
|
|

09.01.2009, 21:58
|
|
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
Те при маскировки опера всегда себя дописывает в конец. И если прочекать лису раньше оперы, то скрипт будет думать, что клиент - лиса.
|
|
|

09.01.2009, 22:12
|
|
Постоянный
Регистрация: 02.03.2008
Сообщений: 893
Провел на форуме: 5365841
Репутация:
712
|
|
oRb
Ещё раз спасибо за скрипт)) всё работает 
|
|
|

09.01.2009, 22:58
|
|
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме: 3424739
Репутация:
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
Те при маскировки опера всегда себя дописывает в конец. И если прочекать лису раньше оперы, то скрипт будет думать, что клиент - лиса.
спасибо за информацию =) не знал что в конце дописывает 
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|