Lezioni di programmazione PHP: Il lavoro con querystring
Il linguaggio PHP consente la creazione di siti dinamici, ossia la possibilità di poter variare il contenuto di una pagina secondo le esigenze del navigatore o del webmaster. Il metodo per manipolare tali pagine viene estratto dalle variabili che da una pagina vengono trasmesse all’altra. Con queste variabili è possibile trasmettere qualunque cosa, un numero, una scritta, ma anche foto o file se agiamo sui form.
Esistono diversi metodi per il passaggio dei dati fra le pagine, il php mette a disposizione le sessioni, i cookie, il metodo get e post.
I cookie e le sessioni sono spesso utilizzati per gestire le informazioni del navigatore e le statistiche, ed hanno il grande difetto di non poter essere sfruttate se le impostazioni di navigazione del browser non consentono di scaricare i cookie nella memoria temporanea (salvo inserire scorciatoie particolari).
I metodi GET e POST sono sempre disponibili, e pertanto sono da privilegiare quando possibile.
GET
Il metodo get prevede che i nomi ed i valori da associare siano posti direttamente sulla barra di navigazione, nell’indirizzo URL della pagina richiamata.Tale procedura consente al navigatore e a chi può accedere al pc, di leggere il nome della variabile ed il suo valore, pertanto se i dati contengono informazioni personali necessiteranno di un’eventuale criptazione.
La sintassi è la seguente:
<a href="nome_pagina.php?nome=valore">
Come vediamo dall’esempio è semplicissimo, basta ricordarsi del punto interrogativo e non sbagliare il nome o il valore della variabile. Se vogliamo inserire più nomi e valori, dobbiamo solo inserire il carattere & (e commerciale, che significa AND) fra le coppie di parametri.
Esempio:
</a><a href="nome_pagina.php?nome=valore&nome2=valore2&nome3=valore3….">
Dopo aver inserito questa riga (che per convenzione si chiama query string) abbiamo a disposizione un array globale di nome $_GET che contiene tutti i parametri che abbiamo inserito nella query string ed è visibile nell’URL della nuova pagina.
Esempio dell’array:
$_GET= array(‘nome’=>’valore’, ‘nome2′=>’valore2′, ‘nome3′=>’valore3′);
Da adesso (se considero l’esempio precedente) abbiamo a disposizione tutte le variabili che contiene l’array:
$_GET['nome']; //che equivale a ‘valore’
$_GET['nome2']; //che equivale a ‘valore2′
$_GET['nome3']; //che equivale a ‘valore3′
Per essere brevi
Supponiamo di scrivere una riga come questa:
<a href="index.php?ciao=2&ciao2=4>
Quando il codice arriva al server abbiamo a disposizione le variabili:
$ciao=$_GET['ciao'];
$ciao2=$_GET['ciao2'];
E le possiamo usare per generare la pagina index.php che vedrà l’utente sul suo browser.
Eccezioni
Se il server ha impostato register_globals su ON possiamo usare direttamente le variabili (con il loro nome) senza richiamarle tramite l’array $_GET.
Nell’esempio precedente, dove spediamo $ciao e $ciao2 possiamo lavorare direttamente con il loro nome, senza ricavarle tramite le righe $ciao=$_GET['ciao']; e $ciao2=$_GET['ciao2'];
Errore W3C
In alcuni vecchi browser il carattere & non è previsto nel codice HTML (è una parola riservata), ed il navigatore potrebbe avere dei problemi quando visualizza una pagina dove è presente una query che trasmette più variabili con metodo get, e le specifice W3C segnalano come errore l’inserimento diretto di quel carattere nella barra degli indirizzi. Per ovviare a questo problema è sempre consigliabile scrivere il carattere & con il corrispettivo codice HTML: &
Esempio:
Se con l’editor scriviamo il codice:
<a href="index.php?ciao=2&ciao2=4>
Il risultato sulla barra degli indirizzi sarà sempre :
http://nomesito.it/index.php?ciao=2&ciao2=4
Conclusioni
Le query string sono una delle caratteristiche fondamentali dei linguaggi che creano pagine dinamiche.
Un esempio è la creazione delle directory, come in questo sito.
Immaginate quante pagine avremmo dovuto compilare per creare una directory con decine di categorie e centinaia di siti. La realtà Semplice, una directory si genera con una sola pagina PHP ed un database dove archiviamo tutti i siti recensiti.
I dati scelti dall’utente (tramite il form di ricerca o il clic sulle categorie) vengono rimbalzati dalla pagina iniziale al server, analizzati, manipolati e poi di nuovo sul browser.
In questo modo è possibile generare migliaia di soluzioni per la stessa pagina web.
Abbiamo appena creato un sito dinamico. Per capire in pratica cosa abbiamo appena detto guardate la pagina di esempio.











