Passare delle variabili a PHP tramite Javascript

JavaScript è un linguaggio client side, vale a dire che viene eseguito dal browser. PHP invece viene eseguito dal server su cui è ospitato il sito che viene visitato. Spesso, soprattutto nello sviluppo di applicazioni web, questi due linguaggi devono interagire. Vediamo in che modo.

Ad esempio: vogliamo conoscere la risoluzione dello schermo dei nostri visitatori e passarne il valore a PHP. Possiamo farlo con queste righe di Javascript:

<script type="text/javascript">
lar = screen.width;
alt = screen.height;
if (lar> 0 && alt>0) {
var page = "http://miosito.it/risoluzione.php";
window.location.href = page+"?l="+lar+"&a="+alt;
} else
 exit();
</script>

Questo codice potrebbe essere inserito nella home page del nostro sito (index.html). Il visitatore che accede alla pagina viene rediretto automaticamente alla pagina risoluzione.php, dove possiamo stampare a video i valori della risoluzione:

<?php
echo "<h1>Risoluzione dello schermo:";
echo "Larghezza : ".$_GET['l']."<br />";
echo "Altezza: ".$_GET['a']."<br />";
?>


5 Commenti

  1. Interessante... un altro modo potrebbe essere quello di usare i Cookie! Si scrive un Cookie in Javascript e poi lo si legge con PHP.
    Certo è che così si devono avere i Cookie abilitati... il chè non è sempre vero. Tuttavia potrebbe essere un'alternativa, che avrebbe il vantaggio - la seconda volta - di non dover inviare nulla ad un'eventuale pagina PHP.

  2. serdominik scrive:

    Interessante questo articolo ed mi è stato di aiuto...

  3. dottwatson scrive:

    a dire il vero questo metodo ha un limite non indifferente. in pratica, se inserisco questo codice in ogni mia pagina del sito o in un template, mi darà seri problemi per quello che riguarda l' invio di dati in POST o GET ... direi di modificarlo in questa maniera:

    invece di fare un redirect (è qui il danno) si fa in questa maniera

    lar = screen.width;
    alt = screen.height;
    if (lar> 0 && alt>0 && ss_res==true)
    {
    var NewEl=document.createElement('script');
    NewEl.type="text/javascript";
    NewEl.src="session_res.php?l="+lar+"&a="+alt";
    if (document.body) document.body.appendChild(NewEl);
    else document.appendChild(NewEl);
    }

    e nel codice php che si occupa di salvare in sessione i valori

  4. dottwatson scrive:

    hem.. mi sa che mi tronca i codici :D

  5. herakles29 scrive:

    bene cercavo proprio uno script del genere per visualizzare un'immagine in base alla risoluzione del browser

    grazie