Pobierz ekran użytkownika i wymiary widoku w php przy pierwszym ładowaniu

Chcę uzyskać w PHP wysokość / szerokość ekranu i rzutni, gdy użytkownik odwiedza stronę.

Próbowałem różnych sposobów, ale wszystkie powodują inne problemy.

Moje cele:

Uzyskaj informacje o pierwszym ładowaniu (brak strony skoku, brak przeładowania).

Nie zmieniaj adresu URL

Nie wpływa to na resztę PHP, która działa na obciążeniu, lub sprawia, że ​​PHP działa dwukrotnie

Co próbowałem dotychczas:

JavaScript, aby uzyskać wymiary rzutni:

if(!isset($_POST['width']) || !isset($_POST['height'])) {
echo '
<script type="text/javascript" src="jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
    var height = $(window).height();
    var width = $(window).width();
    $.ajax({
        type: \'POST\',
        data: {
            "height": height,
            "width": width
        },
        success: function (data) {
            $("body").html(data);
        },
    });
});
</script>
';
}

$user_width = $_POST['width'];
$user_height = $_POST['height'];

problemy: powoduje, że wszystkie php uruchamiają się dwa razy, raz przy załadowaniu, raz po zwróceniu wartości (drugi raz po około 4 sekundach od pierwszego), co sprawia, że ​​reszta php jest zwariowana ... sprawia również, że ładowanie strony jest bardzo powolne

Umieszczanie wymiarów ekranu w adresie URL:

if(isset($_SESSION['screen_width']) AND isset($_SESSION['screen_height'])){
    $user_width = $_SESSION['screen_width'];
    $user_height = $_SESSION['screen_height'];
    } else if(isset($_REQUEST['width']) AND isset($_REQUEST['height'])) {
        $_SESSION['screen_width'] = $_REQUEST['width'];
        $_SESSION['screen_height'] = $_REQUEST['height'];
        header('Location: ' . $_SERVER['PHP_SELF']);
    } else {
        echo '<script type="text/javascript">window.location = "' . $_SERVER['PHP_SELF'] . '?width="+screen.width+"&height="+screen.height;</script>';
    }

problemy: zmienia adres URL (który wpływa na inny kod i wygląda źle w porównaniu z pozbawionymi wyrazu adresami URL, które mają teraz); nie zwraca rozmiaru rzutni afaik

Jestem nowicjuszem. Może to łatwe, ale naprawdę nie wiem. Dużo szukałem. Tak otrzymałem powyższe metody. Ale nie mogłem ich zmusić do pracy. Afaik, nigdzie nie widziałem rozwiązania podobnej sytuacji.

Dzięki :)

questionAnswers(2)

yourAnswerToTheQuestion