У меня есть скрипт, который получает размер экрана браузера пользователя с помощью JavaScript и добавляет переменную в MySQL с помощью PHP.
У меня проблема с моим скриптом, потому что JavaScript работает на стороне пользователя, а PHP работает на стороне сервера.
Я делаю это, как в моем примере скрипта, но в MySQL добавляю строку со всем кодом javascript, а не с размером экрана браузера пользователя. Пожалуйста, помогите мне решить мою проблему. Спасибо.
P.S. Скрипт работает в "тени".
<?php
$width = "<script>document.write(screen.width);</script>";
$height = "<script>document.write(screen.height);</script>";
$resolution = $width.' x '.$height;
//-- Create connection
$conishua = new mysqli($sv_name, $ur_name, $multipass, $db_name);
$conishua->set_charset('utf8');
//-- Check connection
if (mysqli_connect_errno()){echo "Failed to connect to DB: " . mysqli_connect_error();}
//-- Open DB a check if exist
$base_search = $conishua->query("SELECT id FROM `db_name` LIMIT 1");
#IF DB NOT EXIST - CREATE IT AND DO A QUERY
if ($base_search === FALSE) {
//-- Create not existed DB
$user_ip_table = "CREATE TABLE IF NOT EXISTS `db_name` (
`id` int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,
`ip` tinytext NOT NULL,
`agent` tinytext NOT NULL,
`date` tinytext NOT NULL,
`time` tinytext NOT NULL,
`resolution` tinytext NOT NULL)AUTO_INCREMENT=146789 DEFAULT CHARSET=utf8;";
//-- Do a query for new user ip if DB exist
if ($conishua->query($user_ip_table) === TRUE && !$BOT) {
$newUser = "INSERT INTO `db_name` (ip, agent, date, time, resolution) values ('$ip', '$agent', '$date', '$time', '$resolution')";
$rs = $conishua->query($newUser);
}
} ?>
В выводе MySql так же, как это
<script> document.write(screen.width); </ script> вместо 1388 x 768 или другое.
Пожалуйста, помогите изменить мой сценарий.
@NicoHaase... я не знаю, как это сделать (
Вы путаете то, что происходит на клиенте, с тем, что происходит на сервере. Вы, вероятно, захотите использовать Ajax для отправки размеров в ваш PHP-скрипт.
@ Дэйв.. может быть, но я не знаю, как это сделать..
Вам необходимо опубликовать данные на стороне клиента на стороне сервера. Для этого не нужна форма, но принципы те же. Вы просто не можете вернуть что-то, работающее в JavaScript, обратно в PHP, не отправив его каким-либо образом.
@ Дэйв .. может быть, ты можешь привести мне пример?
@КатеринаМусакина.... Хорошее решение, мне нравится $base_search = $conishua->query("SELECT id FROM db_name LIMIT 1");
@WebSon... большое спасибо



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В чем проблема? Почему бы не перенести разрешение с клиента на бэкенд? Очевидно, что на вашем PHP-сервере нет экрана.