Проблема с получением правильных заголовков из Opera Mini

Для всех наших мобильных сайтов мы регистрируем все входящие запросы к нашим страницам с помощью PHP-скрипта. Каждый день мы получаем тысячи обращений от Opera mini, и мы использовали приведенный ниже фрагмент кода, чтобы определить правильный пользовательский агент.

if (array_key_exists("X-OperaMini-Phone", $headers))
{
$ua= mysql_real_escape_string('Opera-').($headers["X-OperaMini-Phone"]);
}
else 

{ $ua = mysql_real_escape_string($_SERVER['HTTP_USER_AGENT']); }

Однако, поработав некоторое время, я обнаружил, что в подавляющем большинстве случаев заголовок X-OperaMini-Phone пуст. Код выше выглядит правильно? И если да, то можете ли вы пролить свет на то, почему?


person Michael Farah    schedule 27.08.2013    source источник


Ответы (1)


Целесообразнее искать строку «Opera Mini» в строке UA при обнаружении Opera Mini. Заголовок X-OperaMini-Phone может отображаться не на всех устройствах. Подробнее см. здесь. http://dev.opera.com/articles/view/opera-mini-request-headers/

person Ameer    schedule 27.08.2013
comment
Я смотрю на строку UA в соответствии с приведенным выше кодом? Не уверен, что понял ответ? - person Michael Farah; 27.08.2013
comment
Вам нужно искать строку Opera Mini в заголовке User-Agent, а не просто искать все заголовки. - person Ameer; 28.08.2013
comment
Но как поиск строки Opera Mini в пользовательском агенте даст мне фактический базовый пользовательский агент, который я и ищу - person Michael Farah; 28.08.2013
comment
Я читал статью несколько раз. Вот как я знаю, чтобы проверить заголовок X-OperaMini-Phone. Мой вопрос основан на реальном опыте попыток опросить этот заголовок и обнаружил, что в подавляющем большинстве случаев заголовок не содержит соответствующей информации. - person Michael Farah; 30.08.2013
comment
В статье упоминается: Обратите внимание, что этот заголовок присутствует только в том случае, если у нас есть разумные доказательства того, что наши данные верны. - person Ameer; 31.08.2013