Я знаю, как определить браузер, используя JavaScript, но как я могу передать эту информацию в PHP?
Как я могу сделать следующее:
Javascript обнаруживает браузер, возвращает «да», если у пользователя IE 9 или ниже, и переходит к шагу 2.
Javascript сообщает PHP «да» и переходит к шагу 3.
PHP выполняет оператор if / else в зависимости от того, присутствует ли «да» из приведенного выше JavaScript.
Пользовательский агент не является надежным методом.
Лично я использую Agent Switcher, чтобы обманывать сайты довольно часто.
Этот метод не будет обманут.
Мой единственный вариант — отключить JavaScript.
Выберите инструкцию JS, которая работает в IE9 +, а не в предыдущих версиях
Вероятно, есть лучшая инструкция для использования, кроме getElementsByClassName
но это демонстрирует концепцию.
Выберите инструкцию из тестовой страницы следующим образом:
Затем создайте тестовую страницу и протестируйте эту страницу на тестовом сайте Cross Browser.
Этот тест будет успешно пройден (ИСТИНА) или не пройден (ЛОЖЬ) на основе поддержки браузера для try{}catch{}
в любом браузере, начиная с 1999 года:
Это пройдет TRUE на:
Сбой (ЛОЖЬ) только на IE5.5 — IE8
HTML
<div class="test"></div>
JS
var checkIE = false;
try {
var el = document.getElementsByClassName('test');
checkIE9 = true;
}
catch(e) {
checkIE9 = false;
}
Затем перенаправить на основе того, является ли checkIE9 истинным или ложным
Замените mozilla.org на страницу / скрипт IE9 и на microsoft.com страницу / скрипт старого стиля
if (checkIE9){
window.location = 'http://mozilla.org';
}
else{
window.location = 'http://www.microsoft.com';
}
Или отправьте форму основано на истинном или ложном.
HTML
<form action="true.php" method="get"><div>
<input type="hidden" name="chkIE" value="1"/>
<button id="t" type="submit"></button>
</div></form>
<form action="false.php" method="get"><div>
<input type="hidden" name="chkIE" value="2"/>
<button id="f" type="submit"></button>
</div></form>
НОТА: Да, это может быть одна форма с двумя кнопками, но формы дешевы, и мне нравится передавать значения скрытым вводом.
Я не использовал ноль в качестве значения в случае, если пользователь должен был перейти непосредственно на страницу, на которую ссылаются формы.
Нулевой контрольный код в test.php:
$chckIE9 = intval($_GET['chkIE9']);
if($chckIE9 == 0){
include('test.html');
exit;
}
Или, если вы хотите, чтобы промежуточная страница и ссылки как истина и ложь на один и тот же сценарий.
<form action="test.php" method="get"><div>
<input type="hidden" name="chkIE" value="1"/>
<button id="t" type="submit"></button>
</div></form>
<form action="test.php" method="get"><div>
<input type="hidden" name="chkIE" value="2"/>
<button id="f" type="submit"></button>
</div></form>
PHP:
$chckIE9 = intval($_GET['chkIE9']);
if($chckIE9 == 1){
include('true.php');
}
elseif($chckIE9 == 2){
include('false.php');
}
else{
include('test.html');
}
exit;
JS
Здесь необходимо принять решение о том, какой путь по умолчанию.
Вы можете нажать «f», если (! CheckIE9)
Тогда по умолчанию будет IE9 +
Если есть необходимость в дефолте, вероятно, лучше по умолчанию использовать false
if (checkIE9){
document.getElementById('t').click();
}
else{
document.getElementById('f').click();
}
Этот фрагмент будет отображать либо «IE9 + Совместимо», либо «ОБНОВИТЬ ВАШ БРАУЗЕР»
Этот код протестирован с IE8, который выскакивает «ОБНОВИТЬ ВАШ БРАУЗЕР»
var checkIE = false;
try {
var el = document.getElementsByClassName('true');
checkIE9 = true;
}
catch(e) {
checkIE9 = false;
}
if (checkIE9){
document.getElementById('t').style.display = 'block';
}
else{
document.getElementById('f').style.display = 'block';
}
#t,#f,.hide{display:none;}
<!DOCTYPE html>
<html lang="en">
<head></head><body>
<div id="t" class="true"><h2> IE9+ Compatible</h2></div>
<div id="f"><h2> UPDATE YOUR BROWSER</h2></div>
</div>
<form action="test.php" method="get"><div><input type="hidden" name="chkIE" value="1"/><button class="hide" id="t" type="submit"></button></div></form>
<form action="test.php" method="get"><div><input type="hidden" name="chkIE" value="2"/><button class="hide" id="f" type="submit"></button></div></form>
</body></html>
$ _SERVER [ ‘HTTP_USER_AGENT’]
Содержимое User-Agent: заголовок текущего запроса, если есть
это один. Это строка, обозначающая пользовательский агент, который является
доступ к странице. Типичный пример: Mozilla / 4,5 [en] (X11; U;
Linux 2.2.9 i586). Среди прочего, вы можете использовать это значение с
get_browser (), чтобы адаптировать вывод вашей страницы к возможностям
пользовательский агент.
Вы не можете передавать информацию из Javascript в PHP без какого-либо взаимодействия с сервером, например. обновить страницу или ajax. Это потому, что JavaScript работает с контентом, созданным на PHP-сервере и отправленным в ответ браузеру. Если браузер получает ответ (контент), попробуйте его отредактировать, и тогда вы можете справиться с тем, что браузер делает через javascript. В настоящее время сервер PHP не знает, кто вы или что вы хотите делать дальше без какого-либо запроса.
Так что если вы хотите сделать с обновлением страницы, вы можете обрабатывать версию с помощью JavaScript и обновить страницу с обновленным URL.
Совет по использованию: