Отправить данные JSON из Javascript (в браузере) на PHP?

#javascript #php #json #timezone #client-side

#javascript #php #json #Часовой пояс #на стороне клиента

Вопрос:

В настоящее время пишу приложение, которое требует, чтобы я узнал некоторую информацию о браузере клиента (например, GetTimeZoneOffeset, ширину и высоту экрана, глубину цвета, если включены JS и Java).

Мне нужна эта информация, отображаемая в виде данных JSON в файле PHP. Каков наилучший способ сделать это?

 <?php
session_start();
if (isset($_POST['width'])) {
    $_SESSION['screen_size'] = array();
    $_SESSION['screen_size']['width'] = intval($_POST['width']);
    $_SESSION['screen_size']['height'] = intval($_POST['height']);
}


if (!isset($_SESSION['screen_size'])) {
?>
    <html>

    <head>
        <script>
            function getSize() {
                document.getElementById('inp_width').value = screen.width;
                document.getElementById('inp_height').value = screen.height;
                document.getElementById('form_size').submit();
            }
        </script>

        <!-- <script>
            function myFunction() {
                var d = new Date().getTimezoneOffset();
                document.getElementById("demo").innerHTML = d;    
            }
        </script> -->

    </head>

    <body onload='getSize()'>
        <form method='post' id='form_size'>
            <input type='hidden' name='width' id='inp_width' />
            <input type='hidden' name='height' id='inp_height' />
        </form>
    </body>

    </html>


<?php
} else {
    print_r($_SESSION['screen_size']);
}

// echo '<pre>' , var_dump($_SERVER) , '</pre>';
$lang = locale_accept_from_http($_SERVER['HTTP_ACCEPT_LANGUAGE']);
$acceptHeader = $_SERVER['HTTP_ACCEPT'];
$userAgent = $_SERVER['HTTP_USER_AGENT'];
$shopperUrl = $_SERVER['SERVER_NAME'];

echo 'Browser Languge: ';
print_r($lang);
echo '' . PHP_EOL;
echo 'Accept Header: ';
print_r($acceptHeader);
echo '' . PHP_EOL;
echo 'User Agent: ';
print_r($userAgent);
echo '' . PHP_EOL;
echo 'Shopper Result Url ';
print_r($shopperUrl);
echo '' . PHP_EOL;

  

В настоящее время у меня есть приведенный выше код, но я считаю, что я иду по неправильному пути.

Комментарии:

1. Вам нужен AJAX для передачи значений от клиента к серверу. Это лучшее, что я могу предложить из скудной информации, которой вы поделились. Возможно, вы захотите подробнее ответить на свой вопрос, добавив некоторую информацию о том, как и почему эти данные будут использоваться.

2. «Лучший способ» будет зависеть от многих вещей, о которых вы ничего не рассказывали. Что вы пробовали до сих пор, и где вы застряли?

3. Привет обоим, извиняюсь за это — я относительно новичок в разработке в целом. У меня есть код, который в настоящее время находится в сообщении, но я считаю, что должен быть более эффективный способ сделать то, что мне нужно. Некоторые данные я могу довольно легко получить с помощью PHP, но я считаю, что если я соберу все необходимые мне данные с помощью Javascript и / или jQuery, это даст мне более чистый код, я просто не могу найти способ сделать это.