Общий способ узнать, какой браузер они используют? - PullRequest
0 голосов
/ 21 августа 2009

Я хотел бы ввести текст с вопросом «какой браузер вы используете» над ним. Затем, когда форма отправлена, я бы хотел сравнить их ответ с их заголовком HTTP User-Agent.

Я нахожусь в тупике, как надежно сделать эту работу.

Я мог бы попросить их прописать это вместо использования таких аббревиатур, как IE или FF, но Internet Explorer использует «MSIE», поскольку его «идентификатор» не так ли?

Еще одна мысль, которую я имел, состояла в том, чтобы сохранить пул строк User-Agent, затем представить их с элементом select, который вставил их случайным образом среди 4 или около того других случайных строк, и попросить их выбрать свои. Я боюсь, что пользователи, не обладающие техническими знаниями, запутают это достаточно много раз, чтобы это стало проблемой. Я полагаю, что мог бы использовать некоторую логику, чтобы убедиться, что среди вариантов есть только один из каждого типа браузера, но я опасаюсь даже этого.

Ответы [ 4 ]

6 голосов
/ 21 августа 2009

Почему Вы хотите спросить пользователя о его User-Agent?

Вытяните соответствующий заголовок http - как вы упомянули, должно быть достаточно.

Но если вам это нужно, я бы пошел на

  • регулярные выражения - для проверки http-заголовка user-agent и вырезания неважной информации из этого заголовка
  • представить возможное совпадение на основе предыдущего шага
  • спросить пользователя, соответствует ли совпадение, если нет, пусть он введет свой собственный ответ
  • тогда я бы попытался сопоставить то, что он ввел, с некоторыми значениями словаря, чтобы иметь возможность ввести IE и MSIE и получить тот же результат.

Вышесказанное кажется достаточно расплывчатым :) и абстрактным, может быть, вы могли бы дать объяснение - почему вы этого хотите? может есть какой-то другой способ?

1 голос
/ 21 августа 2009

Очевидный вопрос: почему вы хотите спросить пользователя, какой браузер он использует?

Но учитывая, что:

a) Нормализовать пользовательскую строку: строчные буквы, удалить пробелы, удалить цифры?

b) Построить карту между нормализованными строками и строками пользовательского агента.

Когда вы выполняете поиск, если нормализованная строка или строка пользовательского агента отсутствует на карте, передайте ее человеку, чтобы добавить к карте с соответствующим отображением.

Возможно, вы захотите также каким-то образом нормализовать пользовательский агент?

1 голос
/ 21 августа 2009

Вы не можете на 100% доверять вводимым пользователем данным или строке, которую браузер отправляет в заголовках HTTP ...

1 голос
/ 21 августа 2009

Помните: клиент отправляет заголовок HTTP, и, возможно, пользователь может поместить что-либо в User Agent. Поэтому, если вы хотите поймать людей, которые «лгут» о браузере, который они используют, вы поймаете только тех, кто не может изменить заголовок HTTP, прежде чем они отправят его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...