Как я могу определить браузер и ОС пользователя и использовать это для динамического изменения запроса к базе данных MySQL со страницы PHP
Мне нужно иметь возможность выполнить запрос MySQL и пропустить определенные результаты, если пользователь использует определенный браузер в определенной ОС. Мой запрос к базе данных происходит из службы AMFPHP, и у меня есть сценарий javascript browserDetect, который я могу использовать для получения пользовательского браузера и ОС.
В идеале я хочу запустить скрипт browserDetect, когда пользователь заходит на мою страницу, а затем сохранить его в переменных сеанса PHP, но я не вижу, как передать переменные javascript в сеанс PHP. Это позволило бы моему сценарию запроса базы данных искать сеанс и соответственно изменять запрос. Я также попытался включить скрипт обнаружения браузера в сценарий AMFPHP, но это не сработало - я понимаю, что это проблема серверной стороны по сравнению с клиентской.
Какие другие решения будут работать для меня?
Спасибо
4 ответа
Почему бы не сделать это только с помощью PHP? PHP также способен извлекать браузер и ОС...$_SERVER['HTTP_USER_AGENT']
содержит браузер и ОС...
Как сказал @thedom, просто используйте $_SERVER['HTTP_USER_AGENT']
в PHP. Ваш пользовательский агент (если пользователь не изменяет его) будет содержать браузер, версию браузера и ОС. Вот мой:
Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/534.15 (KHTML, like Gecko) Chrome/10.0.612.1 Safari/534.15
НО, если вы хотите использовать javascript, вам придется сделать что-то похожее на то, что я делал, для реализации входа в Ajax.
Я в основном положил это в верхней части скрипта (login.php)
session_id($_POST['PHPSESSID']);
session_start();
И это на странице, с которой будет запускаться javascript для определения сессии (index.php)
$sessionid = ($_COOKIE['PHPSESSID']) ? $_COOKIE['PHPSESSID'] : $_GET['PHPSESSID'];
<script type="text/javascript">var session = "$sessionid";</script>
А затем я отправляю сообщение в другой скрипт (login.php) (для входа через ajax в этом случае)
$.post("ajax/login.php",PHPSESSID=" + session);
Использование JQuery.
Вы можете установить результаты из javascript browserDetect в cookie javascript, и PHP может читать cookie из этого файла.
подробнее: Как читать Javascript cookie с помощью PHP
Другое решение состоит в том, чтобы позволить javascript сделать ajax-запрос, содержащий OS/Browser, но лучшим способом может быть анализ пользовательского агента.