Php puede detectar la IP, nombre de host, el agente de cliente, etc. Pueden php detectar el navegador del cliente el tamaño de la pantalla/resolución?

OriginalEl autor | 2009-05-21

9 Comentarios

  1. 25

    No, no puede. PHP se ejecuta en el servidor, por lo que no puede detectar la configuración del cliente a menos que usted tome en el lado del cliente los pasos para pasar la información a los scripts de PHP en el servidor.

    Usted tendrá que usar PHP junto con JavaScript

    OriginalEl autor PaulJWilliams

  2. 5

    Por favor, tenga en cuenta que algunos de nosotros nos gusta que nuestros navegadores no maximizado. Quizás sería mejor tratar de detectar el tamaño del navegador en lugar de la resolución de la pantalla. Supongo que el JS para hacer que cualquiera sería muy similar, pero yo en realidad no saben que para ser el caso.

    También, ¿cuál es la resolución de un hombre ciego lector de pantalla?

    +1. He 2560×1600 de resolución de pantalla, yo casi nunca ejecutar maximizada. Usted debe leer el punto de vista del tamaño del puerto (el área de la ventana sin contar las barras de herramientas, barras de desplazamiento, barra de estado y la decoración de las ventanas).

    OriginalEl autor Dave Sherohman

  3. 4

    Usted tendrá que usar PHP junto con JavaScript, como en este ejemplo:

    $url = $_SERVER['PHP_SELF'];
    
    if( isset($HTTP_COOKIE_VARS["res"]) )
        $res = $HTTP_COOKIE_VARS["res"];
    
    else {
        ?>
        <script language="javascript">
        <!--
        go();
    
        function go() 
        {
            var today = new Date();
            var the_date = new Date("August 31, 2020");
            var the_cookie_date = the_date.toGMTString();
            var the_cookie = "res="+ screen.width +"x"+ screen.height;
            var the_cookie = the_cookie + ";expires=" + the_cookie_date;
            document.cookie=the_cookie
                location = '<?echo "$url";?>';
        }
        //-->
        </script>
        <?php
    }
    
    //Let's "split" the resolution results into two variables
    list($width, $height) = split('[x]', $res);
    
    //Take the width and height minus 300
    $tb_width = $width-300;
    $tb_height = $height-300;
    
    //Make the table
    print("<table align=center border=1 width=" .$tb_width . " height=" . $tb_height . " >
        <tr><td align=center>Your screen resolution is " . $width . " by " . $height . ".<br>
        The width/height of this table is " . $tb_width . " by " . $tb_height . ".</td></tr>
        </table>");

    OriginalEl autor schnaader

  4. 2

    Usted tendría que pasar eso a un script PHP desde JavaScript como la mayoría de código de seguimiento (con una imagen transparente petición).

    y todavía no se puede saber si el usuario cambia el tamaño de la ventana o cualquier otro evento como ese..

    OriginalEl autor Lloyd

  5. 2

    Yo estaba buscando esto, pero no encontré ninguna de estas respuestas realmente respondió a la pregunta! De hecho, no hay ninguna manera de PHP para saber la resolución de la pantalla ya que se ejecuta en el lado del servidor. Puesto que la información no se transmite a lo largo de en HTTP variables de entorno, necesitamos otra ruta. Javascript es una de las alternativas.

    El siguiente ejemplo es una página PHP que busca un resolution variable que se pasa en la petición HTTP. Si no encuentra la que resolution variable, entonces se crea un breve poco de JavaScript en la página que pasa que el de la variable y la altura y la anchura a lo largo de una redirección de nuevo a sí mismo. Por supuesto, cuando la página se carga de nuevo después de la redirigir todas las variables se establecerá y PHP conocer la resolución.

    <?php
        if(!isset($_GET['resolution'])) {     
            echo "<script language=\"JavaScript\">     
    <!--      
        document.location=\"$PHP_SELF?resolution=1&width=\"+screen.width+\"&height=\"+screen.height;     
    //-->     
    </script>";     
        } else {
            //Code to be displayed if resolution is detected     
            if(isset($_GET['width']) && isset($_GET['height'])) {     
                echo "Width: " . $_GET['width'] . " and Height: " . $_GET['height'] . "<br />";
            } else {     
                echo "Resolution not detected.";
            }     
        }
    ?>

    Al final he encontrado esta bastante insatisfactoria solución. Funciona, pero es feo, agregando el resto de la URL y que requieren de una redirección. Aún así, puede inspirar a alguien para publicar una respuesta mejor. FYI, el crédito donde el crédito es debido, esta respuesta fue inspirado por este post.

    Usted sabe que la resolución en un punto en el tiempo.. pero por el momento en que se carga después de la redirección, que sabe lo que es la resolución.

    OriginalEl autor EFC

  6. 2

    Sé que esta no es la mejor respuesta para repuesto el downvote.

    <script>
    /*
        JAVASCRIPT IS ON TELL THE DEVELOPER#
    */
    //GET BROWSER WIDTH AND HEIGHT
    var bh=screen.height;
    var bw=screen.width;
    window.location="?doSubmit=do&js=yes&bh="+bh+"&bw="+bw+"";
    </script>
    
    <noscript>
        <!--
            JAVASCRIPT IS OFF TELL THE DEVELOPER#
        -->
        <meta http-equiv='refresh' content='0;url=?doSubmit=do&js=off&bh=off&bw=off'>
    
    </noscript>
    
    <?
    
    if($_GET["doSubmit"]=="do"){
    
        //VARS
    
            $bh=$_GET["bh"];
            $bw=$_GET["bw"];
            $js=$_GET["js"];
    
        //PRINT HTML ?>
    
    <table>
    
        <tr><td><strong>Browser Width:</strong></td><td><?=$bw;?>px</tr>
        <tr><td><strong>Browser Height:</strong></td><td><?=$bh;?>px</tr>
        <tr><td><strong>JavaScript Detection (y/n):</strong></td><td><?=$js;?></tr>
    
    </table>

    OriginalEl autor TheBlackBenzKid

  7. 1

    Algunas personas requieren el tamaño del navegador para móviles devoloping. Esta es la información esencial que, en algunos casos.

    El uso de WURFL y la PARED puede conseguir alrededor de esto, como la mayoría de los móviles no admiten JS.

    OriginalEl autor Paul

  8. 0

    El tamaño de la pantalla no puede ser obtenido usando JS, usted tiene que hacer una encuesta 🙂

    Ugh? Sí se puede.
    Lloyd: puede detectar la resolución de la pantalla, pero no el tamaño del monitor. Una de 1600×1200 de resolución puede significar un viejo 21″ CRT, moderadamente grande del LCD, y un muy bonito y densa pantalla más pequeña de alrededor de 16″
    +1 porque tamaño no puede ser leído como por Csaba
    el tamaño de la pantalla no puede ser detectado, sólo la resolución de la ventana.

    OriginalEl autor Thinker

  9. 0

    Nota, que JS puede comprobar el tamaño de la ventana del navegador, pero este tamaño, incluidos los usuarios de las barras de herramientas, barras de desplazamiento, etc… Real workspase área en el navegador depende del tamaño de las barras de herramientas.

    OriginalEl autor Jet

Dejar respuesta

Please enter your comment!
Please enter your name here