Грешка при разпознаване на Safari

talevtehnology

Registered
Здравейте голям проблем с разпознаването на Safari показва ми го като Chrome
Chrome
Код:
Browser Version:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.4 (KHTML, like Gecko) Chrome/5.0.375.127 Safari/533.4

а така е на Safari
Код:
Browser Version:Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8

а името ко показвам така:

Код:
elseif (preg_match('/webkit/', $userAgent)) { 
$name='Chrome';
}

Но при това положение ми дава че Сафарито е Хром :?

Как да го направя за да ги разпознава ,вече без идеи останах :shock:
 
А защо използваш webkit?
elseif (preg_match('/webkit/', $userAgent)) {
$name='Chrome';
}
ето така
elseif (preg_match('/chrome/', $userAgent)) {
$name='Chrome';
}

elseif (preg_match('/safari/', $userAgent)) {
$name='Safari';
}
 
Пробвах и така но явно защото думата safari се съдържа и в двата низа и пак изписваше че е chrome ,a хрома че е мозила :lol:
 
те са с главна буква
elseif (preg_match('/Chrome/', $userAgent)) {
$name='Chrome';
}

elseif (preg_match('/Safari/', $userAgent)) {
$name='Safari';
}

:?:
 
При мен ето тава примерче работи
Код:
$userAgent=$_SERVER['HTTP_USER_AGENT'];
$name='';
if(preg_match('/Chrome/', $userAgent)) {
$name='Chrome'; 
}
elseif(preg_match('/Firefox/', $userAgent)) {
$name='FF'; 
}
elseif(preg_match('/MSIE/', $userAgent)) {
$name='IE';
}
echo $name;
при теб явно има други неща, които се намесват
 
те всичките са на базата на мозила, според мен имаш прблем с $userAgent
пробвай просто така
$userAgent='Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/533.17.8 (KHTML, like Gecko) Version/5.0.1 Safari/533.17.8 ';

if(preg_match('/Safari/', $userAgent)) {
$name='Safari';
}else{
$name='Error';
}
echo $name;

и ще видиш че ще покаже Сафари
 
Виж под Сафари $_SERVER['HTTP_USER_AGENT'] какво ще ти върне и сравнявай с него. И на preg_match е добре да слагаш case-insensitive (i) след наклонената черта.

Код:
preg_match("/.../i", ..., ...);
 
Благодаря на всички включили се
открих си грешката
1-вата е че вместо $userAgent = $_SERVER['HTTP_USER_AGENT']; аз използвах това $userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
2-та вместо elseif (preg_match('/Firefox/', $userAgent)) аз използвах това elseif (preg_match('/mozilla/', $userAgent))

@gali +1 :?:
 
Може да ползваш и strtolower ама в preg_match ти казах да използваш i (case-insensitive(т.е. малки или големи букви не прави разлика))
 

Back
Горе