Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Risoluzione browser

  1. #1

    Risoluzione browser

    Avrei bisogno di controllare la risoluzione degli utenti ed in base a questa mostrargli o meno una parte di pagina.

    Dando per scontato che per rilevare la risoluzione devo usare js. E' possibile interpretare ed usare queste informazioni in php, magari con un "if"?

  2. #2
    certo, basta far arrivare l'informazione fino a PHP, il che implica ricaricare la pagina o richiamarne un altra.

    Apri la pagina, trovi la risoluzione e ricarichi la pagina (con JS) accodando all'url la risoluzione in modo che PHP possa leggerla e usare l'informazione per quel che hai bisogno

  3. #3
    io avevo pensato una soluzione del genere

    <?php
    session_register("risoluzione");
    $screenwidth = (string) "<script
    language=\"Javascript\">document.write(screen.widt h);</script>";
    if (!$risoluzione) $risoluzione= "$screenwidth";
    ?>

    ma nella sessione mi registra il codice del javascript. Dove sbaglio?

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Originariamente inviato da Enzonet
    io avevo pensato una soluzione del genere

    <?php
    session_register("risoluzione");
    $screenwidth = (string) "<script
    language=\"Javascript\">document.write(screen.widt h);</script>";
    if (!$risoluzione) $risoluzione= "$screenwidth";
    ?>

    ma nella sessione mi registra il codice del javascript. Dove sbaglio?
    Sbagli nel senso che il php viene eseguito prima che venga eseguito il js. Quindi è normale che la variable contenga il valore da te indicato.

  5. #5
    ma come faccio ad eseguire prima js e poi passare il valore al php?

  6. #6
    Utente di HTML.it L'avatar di *Ray*
    Registrato dal
    Oct 2000
    Messaggi
    495
    L'operazione richiede due passi:

    Passo 1: il javascript identifica la risoluzione del client
    Passo 2: il PHP riceve come dati la risoluzione del client

    Sono due richieste diverse al web server. L'unico modo per passare i dati e' via FORM oppure via GET, non c'e' modo per fare tutto in un passo come vuoi tu, putroppo.

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Puoi fare cosi ma esistono altri metodi

    Metodo 1 :

    File test927a.php
    codice:
    <? 
    if (isset($_POST['availHeight'])) {
     $availHeight = $_POST['availHeight'];
     $availWidth  = $_POST['availWidth'];
     $location = "test927b.php?availHeight=$availHeight&availWidth=$availWidth";
     header("Location: $location ");
     exit; 
    } // if (isset($_POST['availHeight']))
    
    ?>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <form id="f1" action="test927a.php" method="post">
     <input type="hidden" name="availHeight">
     <input type="hidden" name="availWidth"> 
    </form>
    <script language="JavaScript" type="text/javascript">
    <!--
    document.getElementById('availHeight').value = window.screen.availHeight;
    document.getElementById('availWidth').value  = window.screen.availWidth;
    document.getElementById('f1').submit();
    //-->
    </script>
    
    </body>
    </html>
    File test927b.php
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    Available Height = <? print $_GET['availHeight'] ?>
    
    Available Width  = <? print $_GET['availWidth'] ?>
    
    
    </body>
    </html>

  8. #8
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Metodo 2

    File test928a.php
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    <form id="f1" action="test928b.php" method="post">
     <input type="hidden" name="availHeight">
     <input type="hidden" name="availWidth"> 
    </form>
    <script language="JavaScript" type="text/javascript">
    <!--
    document.getElementById('availHeight').value = window.screen.availHeight;
    document.getElementById('availWidth').value  = window.screen.availWidth;
    document.getElementById('f1').submit();
    //-->
    </script>
    
    </body>
    </html>
    File test928b.php
    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html>
    <head>
    <title>Untitled</title>
    </head>
    <body>
    Available Height = <? print $_POST['availHeight'] ?>
    
    Available Width  = <? print $_POST['availWidth'] ?>
    
    
    </body>
    </html>
    Si potrebbe anche usare le sessioni.....

  9. #9
    ok grazie, domani provo e vi faccio sapere

  10. #10
    ok ho capito, l'unico problema utilizzando questi metodi è che non mi conserva traccia della risoluzione per poter fare il controllo in altre pagine....

    Come si può fare per includere il dato in una sessione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.