Lezione 6 - IIS "Crocetti

Transcript

Lezione 6 - IIS "Crocetti
Corsi ASP,PHP,Perl/CGI – http://www.dcopelli.it
Lezione nr. 6
>> Come posso inviare i dati di un modulo web?
Siamo giunti alla sesta lezione che ti spiegherà come poter inviare i dati di un modulo web.
NB: Ricorda dalla lezione nr. 5 che uno degli attributi più importanti di un modulo web, in
particolare del tag <FORM> e' l'attributo "action" che ti permette di specificare quale applicazione
o programma, riceverà i dati inviati inseriti da un utente all’interno di un tuo modulo web.
Esempio:
<FORM method="POST" action="http://www.tuosito.com/form/read.php">
Tale applicazione o programma è il cuore di ogni modulo web perchè permette di recuperare i
valori che provengono dai moduli presenti sulle pagine del tuo sito. Vedremo in seguito come
svilupparlo.
Per inviare i dati occorre introdurre un ultimo campo, quello che comunemente si chiama "Bottone"
o "Pulsante" di invio.
Tale campo comunica al browser che tutti i dati inseriti dall'utente devono essere inviati. A chi?
Ma semplicemente all'applicazione/programma che hai indicato nell'attributo "action" del tuo
modulo web. Capisci allora perché è così imporante questo attributo!
Per completare il tuo primo modulo web e poter inviare i dati, devi quindi inserire all'interno dei tag
<FORM> e </FORM> il seguente tag <INPUT type="submit" value="Invia"> in questo modo:
Esempio:
<FORM method="POST" action="http://www.tuosito.com/form/read.php">
.....
<INPUT type="submit" value="Invia">
</FORM>
NB: Come puoi notare il tag appena inserito è molto simile ai tag <INPUT> dei campi text,
checkbox, e radio, con la differenza che l'attributo da utilizzare non è rispettivamente "text",
"checkbox" e "radio" ma "submit". Se dimentichi di inserire tale attributo non verrà visualizzato
nessun bottone e non potrai quindi inviare nessun dato.
Copyright www.dcopelli.it
1
Corsi ASP,PHP,Perl/CGI – http://www.dcopelli.it
NB: Il valore che compare all'interno dell'attributo "value", specifica l'etichetta che il navigatore
vedrà scritto sopra il pulsante. Puoi scrivere quello che vuoi, sempre però all’interno delle doppie
virgolette. Vedremo in seguito come personalizzare il pulsante d’invio con una immagine.
Bene: hai ormai quasi tutti gli elementi per creare il tuo primo modulo web complesso e
pubblicarlo nel tuo sito. Forse ti sarai già chiesto: ma una volta cliccato sul pulsante “Invia”, cosa
succede?
Hai già visto che affinchè succeda qualcosa, devi inserire all'interno dell'attributo "action", l'indirizzo
web del programmino che riceverà tutti i dati provenienti dal tuo modulo.
Esempio:
<FORM method="POST" action="http://www.tuosito.com/form/read.php">
dove il programmino "read.php" sarà creato da te con le tecniche che vedremo a breve.
Ma c'è di più! Saper creare questo programmino, non basta!!!
Perchè?
Ti faccio una domanda: secondo te come faccio a sapere quale dei due campi, del seguente
modulo, è il nome e il cognome ?
<FORM method="post" action="http://www.tuosito.com/form/read.php">
<input type="text"> <br>
<input type="text">
<INPUT type="submit" value="Invia">
</FORM>
Forse stai pensando ad una soluzione di questo tipo:
<FORM method="post" action="http://www.tuosito.com/form/read.php">
Il tuo Nome: <input type="text"> <br>
Il tuo Cognome: <input type="text">
<INPUT type="submit" value="Invia">
</FORM>
che in effetti permette a te "visivamente" di capire dove inserire il nome e dove inserire il
cognome, ma purtroppo tali etichette non sono viste dal programmino "read.php" a cui invierai i
dati. Per lui i due campi rimangono ancora uguali.
Occorre allora una soluzione che identifichi in maniera univoca ogni campo e che sia visibile al
programmino che recupererà i valori.
2
Copyright www.dcopelli.it
Corsi ASP,PHP,Perl/CGI – http://www.dcopelli.it
Per fare questo è necessario aggiungere ad ogni campo l'attributo "name":
Esempio:
<FORM method="post" action="http://www.tuosito.com/form/read.php">
Il tuo Nome: <input type="text" name="nome"> <br>
Il tuo Cognome: <input type="text" name="cognome">
</FORM>
A livello visivo del modulo non cambia niente, ma a livello di programma read.php, che recupererà
i valori, cambia moltissimo!
NB: Osserva come ho inserito l'attributo "name" all'interno del tag <INPUT>. Il valore che puoi
dare all'attributo è totalmente libero, ma è buona norma non inserire spazi. Puoi usare minuscole o
maiuscole ma ti consiglio di usare sempre lettere minuscole.
Esempio:
Il tuo Nome: <input type="text" name="nome 1"> NO!!!
Il tuo Nome: <input type="text" name="nome1"> SI!!!
NB: L'attributo "name=" non è visibile all'utente (solo al programmino read.php), quindi è
totalmente slegato all'etichetta che dai al campo, anche se ti consiglio sempre di dare un nome
simile all'etichetta, magari abbreviandolo.
Esempio:
….
Il tuo telefono: <input type="text" name="tel">
Url del tuo sito: <input type="text" name="url">
La tua Email: <input type="text" name="email">
….
In questo caso al posto di "Il tuo telefono" ho usato "tel" etc, ossia ho utilizzato un’abbreviazione
dell’etichetta che mi permetta di capire di quale campo si tratta.
NB: Non puoi associare lo stesso valore per l'attributo name relativamente a due campi distinti
(es. i campi nome e cognome)
Esempio:
Il tuo Nome: <input type="text" name="nome">
Il tuo Cognome: <input type="text" name="nome"> NO! Stesso valore dell’attributo “name”.
Pertanto ogni campo visto fino adesso dovrà diventare, grazie all'attributo "name=":
1) Campo TEXT
<input type="text" name="XXX">
2) Campo CHECKBOX
<input type="checkbox" name="XXX">
3) Campo RADIO
<input type="radio" name="XXX">
Copyright www.dcopelli.it
3
Corsi ASP,PHP,Perl/CGI – http://www.dcopelli.it
4) Campo SELECT
<SELECT name="XXX">
<option>A</option>
<option>B</option>
.....
</SELECT>
5) Campo TEXTAREA
<TEXTAREA cols="23" rows="3" name="XXX"></TEXTAREA>
dove al posto di XXX sostituirai l'identificativo che vuoi associare a quel particolare campo.
SOLO GRAZIE ALL'ATTRIBUTO “NAME” E' POSSIBILE PENSARE DI RECUPERARE I VALORI
DI OGNI CAMPO PERCHE' SEI ORA IN GRADO DI RICONOSCERE, IN MANIERA UNIVOCA,
OGNI CAMPO CHE L'UTENTE COMPILA.
Tutto ciò però non basta ancora per avere completa dimestichezza con i moduli !
Manca ancora un altro attributo importante da imparare: l'attributo "value=" che serve per definire il
valore da assegnare ad alcuni campi del tuo modulo.
Forse ti starai chiedendo: ma a cosa serve inserire dei valori se è l'utente che li devi inserire nel
mio modulo?
Vedremo meglio questo concetto nelle prossime lezione dove imparerai a scrivere e a creare il
famoso programmino per recuperare e leggere i valori inviati dal modulo.
Ti consiglio di ripetere bene queste ultime 3 lezioni perché sono fondamentali per la tua
preparazione di programmatore PHP.
Per adesso buona programmazione e alla prossima entusiasmante lezione.
Davide Copelli
4
Copyright www.dcopelli.it