PHP: определить ОС юзера, который открыл страницу

J
На сайте с 08.06.2006
Offline
844
1967

На странице сайта для вывода формы используется (по ряду причин) такая конструкция

print file_get_contents("http://ip_server/form.php

Что нужно и в чем проблема.

Нужно средствами пхп (или другими) в form.php определить операционную систему юзера, который запросил страницу сайта с формой.

$_SERVER['HTTP_USER_AGENT'] выдает пустоту.

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#1

Нужно эти данные данные при запросе формы:

print file_get_contents("http://ip_server/form.php?ug=$_SERVER['HTTP_USER_AGENT']

и уже в форме обрабатывать $_GET['ug']

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/
J
На сайте с 08.06.2006
Offline
844
#2

это я знаю

это запасной вариант

в идеале нужно (если это вообще реально) как написал в стартпосте

bums
На сайте с 03.07.2006
Offline
441
#3

joost, так LEOnidUKG это и написал тебе.

Что бы определить ОС, надо передать в form.php user_agent, а уже в form.php можно использовать get_browser(), только сначала внимательно почитать http://php.net/get_browser

Недорогая регистрация и продление доменов RU/SU/РФ/COM/NET/ORG/и т.д. ( https://www.regnic.name/?sesign ) в РЕГРУ, РЕГТАЙМ, Р01, РУЦЕНТР. А так же хостинг и SSL сертификаты.
J
На сайте с 08.06.2006
Offline
844
#4

bums, определять нужно ничего не передавая (если это возможно)

Оптимизайка
На сайте с 11.03.2012
Offline
396
#5


$opts = [ 'http' => [ 'method' => 'GET',
'header' => 'User-Agent: ' . $_SERVER['HTTP_USER_AGENT'] . "\r\n"
]
];

$context = stream_context_create($opts);
print file_get_contents('http://ip_server/form.php', false, $context);
⭐ BotGuard (https://botguard.net) ⭐ — защита вашего сайта от вредоносных ботов, воровства контента, клонирования, спама и хакерских атак!
J
На сайте с 08.06.2006
Offline
844
#6

bums, Оптимизайка, я могу делать правки только в form.php

LEOnidUKG
На сайте с 25.11.2006
Offline
1722
#7
joost:
bums, Оптимизайка, я могу делать правки только в form.php

Тогда никак. Этот запрос выполняет НЕ БРАУЗЕР, а сервер. Юзер = браузер. У него нет юзерагента. Чудес не бывает.

Если эта форма прогружается на своём сайте, тогда подставлять в форму данные через JavaScript

J
На сайте с 08.06.2006
Offline
844
#8
LEOnidUKG:
тогда подставлять в форму данные через JavaScript

для этого нужно вносить правки в form.php ?

что именно прописать?

volkovysk
На сайте с 06.05.2011
Offline
74
#9
joost:
я могу делать правки только в form.php

Если надо определить UserAgent того, кто дёргает form.php при помощи file_get_contents , то ничего не получится, так как дёрганье происходит от имени сервера, где стоит сторонний скрипт. Поэтому, как вариант, если возможно, то, когда запрашивают form.php, другой стороне надо подсунуть в хтмл-код картинку (или тот же JavaScript), которая будет отображаться в браузере у неизвестного пользователя. Сама картинка должна быть php-скриптом с нужным url и быть под Вашим контролем. Вот эта левая картинка и будет определять реальный UserAgent.

J
На сайте с 08.06.2006
Offline
844
#10

реализовал через JS

но тут такой затык

print "<input type=hidden name=os value=\"var OpSys = checkOS();document.write(OpSys);\"></input>";

так в коде оно и есть

как сделать value=вывести значение переменной js ?

---------- Добавлено 22.09.2017 в 12:32 ----------

или глобальной $_GET['os'] присвоить значение переменной JS

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий