Obtenez de l'utilisateur de l'écran&dimensions de la fenêtre d'affichage en php lors du premier chargement

Je veux la faire en PHP la hauteur/largeur de l'écran et la fenêtre d'affichage lorsqu'un utilisateur visite une page.

J'ai essayé de différentes manières, mais ils ont tous causer d'autres problèmes.

Mes objectifs:

  • Obtenir de l'information sur la première charge (pas de saut de page, pas de rechargement).
  • Pas modifier l'url
  • Pas d'incidence sur le reste du PHP qui s'exécute sur la charge, ou le faire que PHP
    exécutez deux fois

Ce que j'ai essayé jusqu'à présent:

Javascript pour obtenir la fenêtre d'affichage dimensions:

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'];

problèmes: causes toutes php pour exécuter deux fois, une fois sur la charge, une fois quand elle retourne une valeur (le deuxième temps est d'environ 4 secondes après la première), ce qui rend le reste de l'php loufoque... facilite le chargement de la page très lent

Mettre les dimensions de l'écran dans l'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>';
    }

problèmes: modifie l'url (qui affecte le code des autres et est de mauvaise qualité comparé à d'inexpressif url de ce qu'ils ont maintenant); ne retourne pas de taille de la fenêtre autant que je sache

Je suis un noob. Peut-être que c'est facile à faire, mais je ne sais vraiment pas. J'ai beaucoup cherché. Que j'ai méthodes ci-dessus. Mais je ne pouvais pas les faire travailler pour moi. Autant que je sache, je n'ai pas vu une solution de n'importe où à une situation similaire.

Merci 🙂

Il est impossible de faire ce que vous demandez. Php s'exécute côté serveur. Vous pouvez accomplir ce que vous voulez avec le javascript qui s'exécute sur le navigateur de l'utilisateur.
Oui. Je comprends Php côté serveur. C'est pourquoi je vais avoir le problème. Comme j'indique ci-dessus, j'ai fait d'utiliser javascript pour obtenir les dimensions et les poster sur PHP. Cela fonctionne, mais il provoque le problème de l'exécution de toutes les php à nouveau (ce qui sur mon site cause double sorties, loufoque, résultats, etc). Peut-être il ya une meilleure façon de le poster à partir de javascript PHP que ce que je suis en train de faire? Merci..

OriginalL'auteur kenji359 | 2013-08-07