Imparare il PHP: Le basi
autore: Orebla
xx/xx/xx
Acquisizione di informazioni dal Client:
Creando siti web sempre più dinamici e con
una programmazione “amichevole” nei confronti dell’utente non possiamo non
parlare di come acquisire informazioni dal Client.
Chi ha già usato l’HTML sicuramente non si
sarà dimenticato dei form o moduli, bene vi farò vedere come acquisire le
informazioni passate dai form e come elaborarle con il PHP. Parleremo dei metodi
con cui i form passano le informazioni (GET e POST), poi spiegherò come usare i
campi di testo, le caselle di opzione, i campi nascosti, creazione di risultati
in base alle opzioni selezionate dall’utente e molte altre cose.
Cap. 4.1.1 I Form (o moduli)
Uno degli argomenti più discussi dell’HTML
sono i form, cioè il Markup Language mette a disposizione dei form per
acquisire informazioni ma non prevede nel suo codice come elaborarle. Infatti se
vogliamo sfruttare i moduli dobbiamo poi prendere i dati con altri linguaggi,
come l’ASP, come il JavaScript oppure come il CGI e per finire come il PHP. Se
noi utilizzassimo linguaggi non dinamici ci toccherebbe rispondere non in tempo
reale alle opzioni definite dall’utente, vedete come ci vengono in aiuto
questi linguaggi server side come il PHP.
Analizziamo i passaggi che dobbiamo fare per
inviare e ricevere informazioni con i form; per prima cosa noi compiliamo i
campi richiesti, che siano campi di testo o pulsanti di opzione; alla fine
spingiamo il pulsante
Submit e
inviamo il nostro modulo compilato.
Ora non ci resta che creare tutto per poter
permettere all’utente di fare ciò che prima abbiamo elencato.
Cap. 4.1.2 Usiamo i
Form (o moduli)
Bene come primissima cosa dobbiamo inserire
nella nostra pagina HTML (o detto html perché i form o moduli possono essere
anche inseriti in una pagina di puro markup language, l’importante è che poi
inviamo i dati ad una pagina tipo PHP) i moduli.
CODICE:
<FORM ACTION= “dati.php”>
…
</FORM>
Questo codice delimita il modulo, cioè tutto
ciò che mettiamo all’interno di questo modulo (campi di testo, pulsanti di
opzione..) sarà poi inviato alla pagina indicata nel “campo” ACTION, in
questo caso dati.php.
Noi inviamo al motore del PHP i dati che poi
dovrà elaborare, quindi il “campo” ACTION non fa altro che indicare al
server a che pagina deve inviare i dati, che può essere benissimo la stessa da
cui vengono inviati, vedremo poi come fare.
Aggiungiamo ora al nostro modulo il campo
METHOD, questo ci permetterà di decidere se inviare i dati con il metodo POST o
GET.
CODICE:
<FORM
ACTION= “dati.php” METHOD=GET>
...
</FORM>
oppure
<FORM
ACTION= “dati.php” METHOD=POST>
...
</FORM>
come vedete abbiamo usate i due, più comuni,
metodi di invio dati. Dico i più comuni perché ci sono anche altri metodi:
HEAD, PUT, LINK, UNLINK, OPTIONS, DELETE, TRACE e CONNECT; però non sono molto
usati e non ci serviranno per i nostri lavori.
Cap. 4.1.3 GET
Il metodo GET dice al server di aggiungere
alla riga dell’URL i dati, li mette in coda dopo un punto interrogativo (?).
Questo punto interrogativo “dice” al browser dove finisce l’URL e dove
iniziano i dati. Le informazioni vengono inviate sotto la coppia
nome/valore. Cioè questa “coppia” mette dietro l’URL il nome
e valore, come una variabile, in questo modo:
http://www.sito.it/dati.php?nome=valore
questo è un invio semplice cioè di una sola
coppia nome/variabile, si può senza problemi mettere in coda più dati basta
separarli con il simbolo & (“e” commerciale).
http://www.sito.it/dati.php?nome=valore&nome2=valore2
Ciò che noi aggiungiamo dopo l’URL è
definita stringa di query, prima abbiamo definito questa coppia di nome/valore
come una variabile, infatti il PHP ci permette di utilizzare poi all’interno
del nostro script il nome di questa coppia come una variabile.
Cap. 4.1.4 POST
Ora analizziamo l’altro metodo, il POST.
Questo è molto semplice perché non c’è niente da spiegare se noi mettiamo
questo nel campo ACTION i nostri dati verranno inviati nell’header del HTTP e
non sarà visibile a nessuno ciò che abbiamo immesso nei dati.
>Cap. 4.1.5 Meglio GET
o POST
Ne abbiamo già discusso comunque tutto il
succo stà nel cosa ne dovete fare, perché se i valori che inviate vi servono
per identificare un utente cioè nome e password se usate il metodo GET ciò non
sarà molto sicuro in quanto i due campi saranno visibili dopo l’URL, meglio
quindi usare il POST.
Se però dovete fare delle query in modo che
poi ci possiate ritornare vi conviene usare il GET, in quanto l’URL creato lo
potete mettere fra i preferiti e poi ripescare. Questo è tutto ciò che dovete
sapere se è meglio uno o l’altro, sta a voi decidere.
Cap. 4.2 I moduli
Elenco sottocapitoli:
4.2.1 campi di testo
4.2.2 aree di testo
4.2.3 pulsanti di opzione
4.2.4 casella di controllo
4.2.5 pulsanti Submit e Reset
>Cap. 4.2.1 Campi
testuali (box di testo)
Il più usato dei moduli, il campo di testo,
vediamo come inserirlo nel codice HTML:
CODICE
INPUT
TYPE=“Text” NAME=“TextBox1”>
Molto facile da inserire all’interno del
nostro modulo, la caratteristica più usata è che questo box di testo accetta
anche frasi intere. Vediamo di seguito un esempio:
CODICE pagina text.htm:
<HTML>
<HEAD>
<TITLE>Prova di un box di testo</TITLE>
</HEAD>
<BODY>
<FORM METHOD= GET ACTION= “text.php”>Inserisci il tuo nome:
<INPUT NAME= “nome” TYPE= “TEXT”><BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
Salvatela
come text.htm
Adesso chiudete il file e create text.php
CODICE pagina text.php:
<HTML>
<HEAD>
<TITLE>Prova di un box di testo</TITLE>
</HEAD>
<BODY>
<?php
$nome = $HTTP_GET_VARS[‘nome’];echo “Il tuo nome è: ”.$nome;?>
</BODY>
</HTML>
Salvate il file come text.php, ora aprite
text.htm e completate la text box e premete invio. Vedete che vi verrà
visualizzato il nome dopo la frase da noi scelta,
Il
tuo nome è: Orebla. Questo non è un esempio difficile, sarete poi voi a
creare qualcosa di più difficile in base alle vostre necessità, infatti
potrete usare la variabile $nome nello script che volete creare. Come avrete
sicuramente notato ho usato il metodo GET, l’ho fatto per semplificare
l’apprensione del funzionamento dello script, perché così potrete vedere
nella barra degli URL il vostro testo.
Utilizzare le text box è facilissimo non ci
sono lunghi codici da scrivere e neanche strani attributi da assegnare. C’è
però una sola cosa da osservare e su cui stare molto attenti, sono le lettere
maiuscole e minuscole, cioè se scrivete Nome invece di nome è diverso!! Quindi
se poi tornate a richiamare la variabile con $HTTP_GET_VARS[‘nome’] e noi
avevamo prima usato Nome non ci verrà visualizzato niente!! Quindi attenzione
perché è CASE SENSITIVE.
Cap. 4.2.2 Aree di
testo
Prima abbiamo detto che le text box sono le più
semplice e più usate però se noi dobbiamo fare scrivere all’utente un testo
su più righe non possiamo usarle perché accettano solo una riga singola.
Allora ci vengono in aiuto le aree di testo, su cui possiamo specificare quante
righe e colonne l’utente può scrivere, ma vediamo il codice.
CODICE
<TEXTAREA NAME= “siti” ROWS=“30”
COLS=“50”>
Come vedete il codice è semplice come per le
text box, però qui dobbiamo specificare il numero di righe e colonne. Un altro
pregio delle TextArea è che possiedono un tag di chiusura </TEXTAREA>, è
stato inserito perché all’interno delle nostre aree possiamo inserire già di
default un testo, per facilitare così le operazioni da parte dell’utente.
Facciamo un esempio.
CODICE pagina textarea.htm :
<HTML>
<HEAD>
<TITLE>Prova di un Text Area</TITLE>
</HEAD>
<BODY>
<FORM METHOD=POST ACTION=“textarea.php”>Quali sono i tuoi siti preferiti?
<TEXTAREA NAME=“sitiweb” COLS=“50” ROWS=“5”>http://
http://
http://
http://
</TEXTAREA>
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
</BODY>
</HTML>
Salvate come textarea.htm.
Ora riaprite l’editor PHP e scrivete questo
codice per la pagina textarea.php.
CODICE pagina textarea.php :
<HTML>
<HEAD>
<TITLE>Prova di un Text Area</TITLE>
</HEAD>
<BODY>
<?php
$sitiweb= $HTTP_POST_VARS[‘sitiweb’];
echo “I tuoi siti preferiti: ”.$sitiweb;?>
</BODY>
</HTML>
Perfetto come avete visto non c’è niente di
più facile…..bé a parte spegnere il computer… Se provate il nostro script
finale vi accorgerete di come è utile la text area.