|
GUDA AL PHP:
autore : Orebla
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 pulsanti Submit e Reset
4.2.5 elaborazione risultati
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.
previous -- index --
next
|