ATTENZIONE: per far funzionare il mailform bisogna procurarsi il file "smtpsvg".
Bentornati nel mondo della
programmazione ASP, in questa puntata il gioco comincerà a farsi duro….ma è
adesso che i duri devono cominciare a giocare. Nella prima puntata si è
definito l'Active Server Pages come un filtro ISAPI, aggiunto all'Internet
Information Server di Windows NT; in altre parole ASP è un linguaggio di
programmazione, di tipo script, che viene eseguito sul server e genera in output
del codice HTML. La differenza dagli altri
scripts languages (Javascript, VBScript), consiste nel fatto che ASP si comporta
come un file CGI, cioè non è possibile visualizzare dal browser il codice
sorgente del linguaggio, ma solo l'output, inoltre ASP permette anche
l'interazione con i DataBase. In questa puntata si
passerà subito all'azione con l'analisi di programmi utili ed immediatamente
applicabili, come la costruzione di un feedback form, di cui si può ammirare il
listato nell'esempio1 Esempio 1:
File HTML del form: <html><head> Un semplice modulo di richiesta <!-- il
tag form ha un action che richiama il file aspmail2.asp che processera' le
informazioni provenienti
dal modulo --> <form
method="POST" action="aspmail2.asp">
<table
border="0">
<tr>
<td>Nome</td>
<!-- ogni
box di testo deve avere un nome per essere identificata --> <td><input type="TEXT" name="nome"
size="25"> </td></tr> <td>Telefono
#</td> <td><input type="TEXT" name="tel"
size="15"> </td> </tr> <tr> <td>Indirizzo</td> <td><textarea name="indirizzo" rows="3"
cols="30"></textarea> </td> </tr> <tr> <td>Email: </td> <td><input type="TEXT" name="email"
size="20"> </td> </tr> <tr> <td>Eventuali
annotazioni</td> <td><textarea NAME="commenti" ROWS="4"
COLS="30"></textarea> </td> ASPMAIL2.ASP: <html> <body
bgcolor="ffffff">
<!--
request.form("tel") prende il valore contenuto nella box che si chiama
"tel" e lo assegna alla variabile strTel e cosi' per tutti le altre --> <% Set Mailer = Server.CreateObject("SMTPsvg.Mailer") strNome =
request.form("nome") strTel = request.form("tel") strIndirizzo
= request.form("indirizzo") strEmail =
request.form("email") strCommenti
= request.form("commenti") rem -
assegno il nome del mittente e l'indirizzo del mittente Mailer.FromName = strNome Mailer.FromAddress = strEmail rem -
assegno l'indirizzo della macchina SMTP dell'host remoto strMailHost = "mail.xxx.it" Mailer.RemoteHost
= strMailHost rem -
Assegno l'indirizzo del destinatario cioe' il mio. Mailer.Recipient "nannib@libero.it" rem -
Assegno la stringa dell'oggetto o titolo (Subject) della mail. Mailer.Subject
= "Modulo on line di informazioni" rem -
Inserisco il corpo del messaggio strBody =
"Caro Nanni Bassetti" & vbCrLf & vbCrLf strBody =
strBody & "Il mio nome e' " & strNome & vbCrLf strBody = strBody & "Abito in ."&strIndirizzo
& vbCrLf strBody =
strBody & "Il mio numero di telefono e' " & strTel &
vbCrLf strBody =
strBody & "La mia E-mail e': " &strEmail & vbCrLf strBody =
strBody & "Ecco i miei commenti al tuo lavoro': " &strCommenti
& vbCrLf Mailer.BodyText
= strBody rem assegno
alla variabile strPrimaLinea la stringa "Il tuo Nome e'" seguita dal
valore contenuto rem nella variabile strNome e cosi' per gli altri. Questo per
il report finale. strPrimaLinea
= "Il tuo Nome e': " & strNome strSecLinea
= "Il tuo numero di telefono e': " & strTel strTerzaLinea
= "Il tuo indirizzo e': " & strIndirizzo strQuartaLinea="La
tua e-mail e':" &strEmail strQuintaLinea="Le
tue annotazioni sono:"&strCommenti rem - Invio
il messaggio if Mailer.SendMail then Response.Write
"Posta Inviata..." rem infine
grazie all'oggetto response ed usando il metodo write stamo a video il valore
delle response.write
strPrimaLinea & "<br>" response.write
strSecLinea & "<BR>" response.write
strTerzaLinea & "<BR>" response.write
strQuartaLinea & "<BR>" response.write
strQuintaLinea & "<BR>" else Response.Write
"Mail fallita. Controlla il nome del server e la connessione tcp/ip…<br>" Response.Write Mailer.Response end if %> </body> Con questo semplice e
comprensibile programmino ora siete in grado di gestire i forms on line
semplicemente facendo un upload dei files (il file html + il file asp) nella
vostra directory di lavoro. Se si vogliono aumentare o
diminuire i campi del form, basterà aumentare o diminuire le variabili
associate agli elementi di <input> del modulo. Chiaramente se si vogliono
usare delle check box o dei radio buttons basterà assegnare loro un valore (VALUE="…")
ed un nome (NAME="…") come si è sempre fatto in HTML. Per concludere il commento
all'esempio 1, ricordiamo che l'SMTP (Simple Mail Transfer Protocol) è il
protocollo di trasmissione usato per la posta elettronica e quando dobbiamo
inviare un messaggio dobbiamo sempre indicare l'SMTP server, cioè l'indirizzo
della macchina che si occupa di inviare i messaggi. Fermi ! ancora un po' di
pazienza prima di buttarsi sulla tastiera bisogna acquisire ancora altri mezzi,
infatti per creare un programma in un qualsiasi linguaggio le tre cose
fondamentali da sapere sono: - le istruzioni di
assegnazione (es. x=5) - le istruzioni di
iterazione (For…To..Next visto nella scorsa puntata) - le istruzioni di controllo (If...Then…End If) Ed a questo proposito ecco
qui un esempio ad hoc per ciò che riguarda le istruzioni di controllo: ESEMPIO 2: <TITLE>Stipendiometro
in ASP</TITLE> Inserisci un
numero da 0 a 4 <form> <% rem
creazione della variabile GradoSalario di tipo Variant cioe' una variabile che
può contenere dim
GradoSalario rem assegno
il valore della textbox alla variabile GradoSalario GradoSalario=request.form("grado") rem l'istruzione Select Case …End
Select e' un switch multiplo, cioe' un come se ci fossero rem piu' blocchi if then end if Select Case
GradoSalario rem nel caso
in cui GradoSalario e' uguale a 0 o uguale ad 1 allora stampa "Sei un
povero barbone" rem e cosi'
via…
case 0,1
</body> Ancora fame di istruzioni ASP ?
Al comando #Include, SSI
esegue una funzione simile alla direttiva #include del C e C++ e cioè
include il contenuto di un file in un file .asp. Il file incluso può
essere di testo, HTML, .asp, di grafica o qualsiasi altro file presente sul
server. Se, per esempio, il vostro
sito è composto da centinaia di pagine e si desiedera dare a tutte un aspetto
uniforme (usando lo stesso template), invece di ricostruire tutto il codice html
per ogni pagina, grazie all'SSI basterà inserire il template in un file da
includere in tutte le pagine. L'inserimento di un file
esterno ha la seguente sintassi: <!-- #INCLUDE
FILE="img.inc" --> dove il file img.inc è
posizionato nella stessa directory del file di destinazione può contenere il
seguente codice (per esempio): <IMG SRC="http:/www.italystore.com/asp/img/button2.gif"
WIDTH="80" HEIGHT="20" ALT="bottone" ALIGN="CENTER"
BORDER="0"> così se vogliamo inserire
il bottone (button2.gif) in tutto nostro sito web, basterà usare una riga
invece di riscrivere tutto il codice html associato. Un altro metodo per
includere i file esterni è: dove img.inc si trova
nella directory di default: \winnt\system32\inetsrv Per concludere questa
lezione facciamo una breve carrellata sugli oggetti Request e Response; L'insieme ServerVariables
informa di tutto ciò che il server sa riguardo al client ed a se stesso, se ad
esempio si scrive il seguente codice: Ecco alcune variabili del
server: Dell'oggetto Response
abbiamo esaminato solo il metodo Write, quindi è d'obbligo una panoramica su
alcuni degli altri metodi: Response.BinaryWrite
questo metodo permette di visualizzare dei file binari (es. le immagini) Response.End interrompe
l'elaborazione ASP in corso. Response.Redirect serve
per inviare i clients ad un altro URL. Il mondo degli ASP è
sconfinato e qui noi cerchiamo di analizzare i mezzi di più immediato utilizzo
e comprensione e con questa nobile missione nel cuore, vi lascio con uno degli
strumenti più richiesti ed usati il web-counter degli accessi al vostro sito. Counter:
Parte seconda
<title>Input form per AspMail</title>
</head>
<body bgcolor="ffffff">
</tr>
<tr>
<td><input type="SUBMIT" value="Invia">
</td></tr>
</table>
</form>
</body>
</html>
<head>
<title>Request con le variabili</title>
</head>
rem il metodo Serve.CreateObject crea delle istanze a degli oggetti preesistenti
come
rem (SMTPsvgMailer) creando cosi' un oggetto.
rem la variabile Mailer è un'istanza dell'oggetto SMTPsvgMailer, cioè è una
variabile che assume rem tutte le caratteristiche ed i metodi dell'oggetto di
cui è istanza ovvero il FromName,
rem FromAddress,il RemoteHost, il Recipient, BodyText, ecc. ecc.
rem - ATTENZIONE: Questi sono campi obbligatori
rem - grazie alla quale potro' inoltrare la posta.
rem ogni variabile strBody etc. etc. assume il valore della stringa tra le
virgolette piu' i caratteri
rem vbCrLf che sono il Carriage Return ed il Line Feed che servono ad andare a
capo.
rem ogni volta alla strBody successiva si concatena il valore della strBody
precedente
rem cosi' alla fina la strBody sara' una stringona rappresentante tutto il corpo
del messaggio.
rem
SendMail puo' ritornare un valore di True o di False
rem se
Mailer.SendMail (implicitamente significa che e' True ) allora apparira' sul
browser il
rem
messaggio "Posta Inviata" ed un report dei dati inseriti altrimenti
(else) appare un messaggio
rem che
comunica che ci sono stati problemi nell'invio del messaggio.
rem variabili seguite da un
</html>
<body bgcolor="ffffff">
<p>Inserisci
il tuo grado di stipendio (0-4):
<p><input type="text" name="grado"><br>
<p><input type="submit" name="Invia">
</form>
rem diversi tipi di dati (numeri, stringhe, ecc.)
response.write("Sei
un povero barbone !")
case 2,3
response.write("Buongiorno
Signore !")
case 4
response.write("Eccellenza
come va ?")
End Select
%>
</html>
ATTENZIONE: per far funzionare questo procuratevi il file "pagecnt".
primaparte | secondaparte | terzaparte | quartaparte | quintaparte | sestaparte