3 Mar 2011 0 commenti
Le variabili di tipo POST e di tipo GET sono, a tutti gli effetti, quelle di maggiore importanza nell'ambito di siti dinamici: esse consentono di ricevere dei dati da parte degli utenti attraverso un form HTML o atraverso l'URL e, a seconda di ciò che l'utente avrà immesso, si potrà interagire con esso.
Tale interazione è determinata soprattutto dalla caratteristica fondamentale delle variabili POST e GET di essere valorizzate direttamente (o indirettamente) dall'utente: i contenuti e la risposta del sito cambieranno a seconda della valorizzazione che gli utenti faranno di tali variabili.
Tuttavia questa stessa caratteristica (la valorizzazione gestibile dall'utente) rende tali variabili particolarmente delicate da utilizzare e potenzialmente pericolose qualora non siano utilizzate opportunamente.
Premetto fin da subito che un loro cattivo e/o superficiale utilizzo può far incorrere in gravi rischi e, pertanto, richiedono una maggiore delicatezza nell'impiego. In questo punto della guida non tratteremo alcuni aspetti legati alla validazione dei dati, ma occorre già da adesso tenerli in considerazione.
Esse, inoltre, si caratterizzano per essere della variabili globali, o meglio, degli array globali: ciò sta a significare che essesono variabili che esistono in qualsiasi pagina php, ma magari essere vuote.
L'ulteriore caratteristica di tali variabili è, inoltre, la possibilità di essere trasmesse da una pagina all'altra. Per capire questa seconda caratteristica supponiamo di avere due pagine distinte con i seguenti codici:
<?php $var = "valore della stringa"; ?>
<?php echo $var; ?>
La variabile $var è valorizzata nella prima pagina, mentre nella seconda pagina quella stessa variabile non essendo stata valorizzata risulterà non esistente. Le variabili POST e GET costituiscono uno dei metodi per trasmettere variabili da una pagina web ad un altra.
Quindi, ricapitolando, le caratteristiche della variabili POST e GET sono:
- la valorizzazione fatta direttamente o indirettamente dall'utente;
- la loro esistenza in tutte le pagine php, anche se vuote;
- la possibilità di essere trasmesse da una pagina ad un'altra.
A questo punto vediamone separatamente tali caratteristiche dal punto di vista pratico iniziando prima con le variabili GET e poi passando alle variabili POST.
VARIABILI GET
Le variabili GET sono valorizzate attraverso l'url della pagina (tecnicamente di parla di QueryString) attraverso una sintassi di questo tipo:
www.sito.it/directory/page.php?var=1
Esaminiamo questo url: stiamo visitando il sito "www.sito.it" e stiamo visualizzado la pagina "page.php" contenuta all'interno della cartella "directory". All'interno dell'url troviamo anche una particolare sintassi:
"?var=1".
In questo modo stiamo inviando la variabile GET chaimata "var" e la stiamo valorizzando con 1.
Vediamo come si inviano tali variabili e il modo in cui si fa a riceverle. Facciamo una prova creando le seguenti pagine web "invia.php" e "ricevi.php" (in questo esempio mettetele per semplicità in una stessa cartella):
invia.php
<html> <body> <a href="ricevi.php?var=1">Invia variabile get 1</a> <a href="ricevi.php?var=2">Invia variabile get 2</a> </body> <html>
rivevi.php
<?php $variabile_get = $_GET['var']; echo "La variabile get che abbiamo inviato è ".$variabile_get; ?>
Puntiamo il browser sulla pagina "invia.php" che è una semplice pagina web con due link entrambi alla pagina "ricevi.php" ma con due variabili GET differenti: in un caso "?var=1" nell'altro "?var=2".
La pagina "ricevi.php" modificherà i suoi contenuti in base alla variabile GET che riceverà, cioè a seconda del link scelto dall'utente, ottenendo così un primo (e semplice) esempio di dinamicità.
La valorizzazione della variabile GET in questo caso è stata fatta (indirettamente) dall'utente che ha scelto di cliccare su un link piuttosto che su un altro.
A questo punto vediamo il modo in cui possiamo semplicemente inviare una variabile php presente in una pagina ad un'altra pagina con metodo GET. Modifichiamo il file "invia.php" in questo modo:
invia.php
<html> <body> <?php $primo=1; $secondo=2; echo "<a href=ricevi.php?var=".$primo.">"; echo "<a href=ricevi.php?var=".$secondo.">"; ?> </body> <html>
In questo modo le variabili $primo e $secondo sono state trasmesse dalla pagina "invia.php" alla pagina "ricevi.php".
Sò che in questa fase potra sembrarvi una cosa banale ma col tempo imparerete l'uso particolarticolare che è possibile fare con tali variabili.
VARIABILI POST
Le variabili di tipo POST sono valorizzate attraverso i form.
In qualsiasi sito di tipo dinamico non mancherà mai un modulo per l'invio si dati a vario scopo: la loro costruzione non fa parte della presente guida in quanto questi sono realizzati con linguaggio HTML ma mi limiterò solo a fare alcuni appunti.
Il tag <form> è caratterizzato dalla seguente sintassi di base:
<form action="riceve.php" method="post">
Esso deve contenere nell'action la pagina php a cui inviare i dati e nel method il metodo utilizzato per l'invio, che potrà essere per l'appunto, get o post. Nel caso in cui l'action è vuota i dati saranno inviati alla pagina stessa in cui è situato il form. Per quel che riguarda il "method" pur potentdo essere di due tipi generalmente è preferibile utilizzare il metodo post.
Il tag form potrà contenere anche l'enctype (che assumerà rilevanza soprattutto se si devono inviare file), il name e l'id(utile a supporto dei ccss e/o javascript) e il target (nel caso si voglia inviare i dati ad una finestra separata, nel caso di utilizzo di frame o di iframe).
Dopo tale tag vi saranno i campi di cui sarà costituito il modulo (text, password, select e option, checkbox, radio button) ognuno dei quali avrà un "name", che identificherà la variabile inviata. Ad esempio un tag input si tipo text avrà una sintassi di questo tipo:
<input type="text" name="campo" />
Infine vi sarà l'input di type submit per inviare i dati alla pagina specificata nell'action.
Per una trattazione maggiormente specifica sulla costruzione dei form vi invito a consultare una specifica guida trattante il linguaggio HTML.
Ai fini della presente guida consideriamo un form molto semplice e basilare messo all'interno di una pagina che chiameremo invia.php:
<form action="riceve.php" method="post"> <p>Inserisci un valore</p> <input type="text" name="valore" /> <input type="submit" value="Invia" /> </form>
Questo form al clic del tasto "Invia" manderà con metodo "post" il valore inserito nel campo a cui abbiamo attribuito il name "valore" al file php chiamato "riceve.php".
Quest'ultimo per recepire il dato che gli è stato inviato avrà la seguente sintassi:
<?php $variabile = $_POST['valore']; echo $variabile; ?>
Capirete bene che il contenuto della pagina "riceve.php" è del tutto controllabile dall'utente che potrà inserire nel campo del form qualsiasi valore lui desideri.
Olimpio Romanella
Sono un appassionato di Web Developing con un particolare debole per php. Mi dedico principalmente dello sviluppo back-end ed in particolare programmazione lato server con php, sviluppo di database relazionali MySql e progettazione di CMS di piccole e medie dimensioni.
Mi avvalgo del framework javascript Jquery, utilizzando molti dei suoi plugin e nei dei miei progetti utilizzo spesso il framework MVC Codeigniter.