Fino ad ora tutta l'enfasi nello sviluppo dei siti web è stata "messa in vetrina". Abbiamo fatto delle vetrine stupende che sono costate una fortuna, ma dentro al negozio? Molto poco. Spesso un cliente ha l'impressione che non ci sia nessunno e spesso il cliente ha ragione! Come facciamo a rimediare?
In questo caso tecnologie come ASP ci aiutano proprio. Per esempio tutti sanno che un sito deve avere un mezzo con cui il cliente
può comunicare con noi. La maniera più semplice è un "mailto:" collegato al tuo email.
Sfortunatamente questo metodo fallisce molto spesso poiché presuppone che il programma di posta elettronica dell'utente sia configurato correttamente e spesso non lo è.
Il secondo metodo è una form mantenuta dall'ISP presso cui risiede il nostro sito. Gli Script dietro a questa form di solito mandano un e-mail al cliente. Il metodo migliore però è costruire la tua form da solo e controllare le informazioni che vuoi sapere dai tuoi clienti e la risposta che gli vuoi dare.
A questo punto, cominciamo a costruire un'applicazione che ci servirà quando avremo finito le nostre lezioni: costruiamo una Form che ci permette di raccogliere informazioni dai nostri clienti, restituendo loro un messaggio di ringraziamento e mandando a noi una email. Il primo pezzo lo sai già fare da solo.
Cominciamo a fare un file chiamato feedback.asp e vediamo dove ci porta.
<HTML>
<HEAD>
<TITLE>Feedback Form</TITLE>
</head>
</HEAD>
<BODY>
<FORM ACTION="manda_feedback.asp" METHOD="post">
<div align="center">
<table border="0" width="85%" celpadding="2" cellspacing="2">
<tr>
<td>
<h1>Grazie per....<hr align="LEFT" size="1" width="100%" color="navy"></h1>
</td>
</tr>
<tr>
<td>Se avete....</td>
</tr>
<td align="center"><br><br>
<table width="60%" border="0" celpadding="2" cellspacing="2">
<tr>
<td>Nome</td>
<td><INPUT NAME="nome" TYPE="TEXT" size=24 MAXLENGTH=50></td>
</tr>
<tr>
<td>email</td>
<td valign="top">
<INPUT NAME="email" TYPE="TEXT" ALIGN=left size=24 MAXLENGTH=50>
</td>
</tr>
<tr>
<tr>
<td valign="top">Commenti</td>
<td><TEXTAREA NAME="commenti" ROWS=7 COLS=40></TEXTAREA></td>
</tr>
<tr>
<td valign="top"><b> </b></td>
<td>
<table width="100%" border="0" celpadding="2" cellspacing="2">
<tr>
<td>
<INPUT TYPE=checkbox NAME="notifyme" VALUE="yes" UNCHECKED>
</td>
<td>Vi interessa ricevere....</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="2" align="center">
<table width="50%" border="0" celpadding="6" cellspacing="2">
<tr>
<td><INPUT TYPE="submit" NAME="parla" VALUE="parla con noi"></td>
<td align="right">
<INPUT TYPE="reset" NAME="nograzie" VALUE="no grazie">
</td>
</tr>
</table>
</td>
</tr>
</table>
</td>
</tr>
</table>
</div>
</FORM>
</BODY>
</HTML>
Feedback.asp ha 2 text boxes, 1 textarea per i commenti e un checkbox nel caso i nostri clienti vogliano ricevere una newsletter regolarmente o pubblicità o qualcosa che ce li leghi a noi un po'. In inglese si chiama stickyness (come il miele, appiccicoso)
La form chiama in azione manda_feedback.asp con il metodo Post. Questo file raccoglie l'input del cliente e lo invia a noi per email. In più presenta al cliente una pagina ringraziando per i suoi commenti.
Volendo, se sei avventuroso, potresti adoperare lo stesso metodo di prima e costruire l'applicazione nello stesso file. Come vuoi tu, ormai sei già un esperto ;o)
Allora costruiamo questa manda_feedback.asp.
Per mandare una email dobbiamo adoperare il NewMail oggetto dalla CDONTS library di Micorsoft.
Il modo in cui adoperiamo questo oggetto è simile agli altri e molto semplice.
<%
Option Explicit
'--------------------------------------------------------
'Purpose: processes the feedback mail
'Date: 10 March 2001
'Commenti:
'--------------------------------------------------------
Dim form, nome
%>
<Html>
<head>
<title>Manda Feedback</title>
</head>
<body>
<%
call Main()
Sub Main()
'--------------------------------------------------------
'Purpose: la logica dell'applicazione
'Date: 10 March 2001
'Commenti:
'--------------------------------------------------------
'se la lungezza è 0 non c'e niente nell email
If Len(Request.Form("email")) = 0 then
no_email()
else
manda_posta(form)
ecco_fatto(nome)
end if
End sub
Sub no_email()
'--------------------------------------------------------
'Purpose: manda un messaggio se email è vuoto
'Date: 10 March 2001
'Commenti: potevamo usare javascript per forzare il cliente
'ma questi sono esempi di ASP
'--------------------------------------------------------
'allora diciamo al cliente che senza una email non possiamo rispondergli
response.write "<div align='center'>"
response.write "<table border='0' width='80%' cellspadding='4' cellspacing='4'>"
response.write "<tr><td>niente email...?</td></tr>"
response.write "<tr><td>per favore, torna indiedro e... </td></tr>"
response.write "<tr><td align='middlè>"
response.write "<a href='Javascript:history.go(-1)'>Prova di nuovo</a>"
response.write "</td></tr></table></div>"
End Sub
Sub manda_posta(form)
'--------------------------------------------------------
'Purpose: manda la email
'Date: 10 March 2001
'Commenti:
'--------------------------------------------------------
Dim email, commenti
Dim objMail, mandamiquesto
'facciamo la vendemmia dell'input
nome = Request.Form("nome")
email = Request.Form("email")
commenti = Request.Form("commenti")
mandamiquesto = nome & "VBcrlf" & email & "Vbcrlf" & commenti
'costruiamo un NewMail oggetto
Set objMail = Server.CreateObject("CDONTS.NewMail")
'adesso che abbiamo accesso a tuttle le sue proprieta, usiamole
'prendiamo il nome dal Form di input
objMail.From = nome
'mandiamola a me, va&46;&46;&46;
objMail.To = "giorgiogobbo@hotmail.com"
'mettiamoci un riga per il titolo
objMail.Subject = "Feedback dal sito"
'e nel corpo ci mettiamo la stringa che abbiamo costruito
objMail.Body = mandamiquesto
'al momento è poco importante, direi
objMail.importance = 0
'e via che va
objMail.Send
'e adesso puliamo prima di andarcene
Set objMail = Nothing
end sub
Sub ecco_fatto(nome)
'--------------------------------------------------------
'Purpose: manda un ringraziamento
'Date: 10 March 2001
'Commenti:
'--------------------------------------------------------
response.write "<div align='center'>"
response.write "<table border='0' width='80%' cellspadding='4' cellspacing='4'>"
response.write "<tr><td>Grazie " & nome & " per il...</td></tr>"
response.write "<tr><td align='middlè>"
response.write "<a href='Javascript:history.go(-2)'>Continua</a>"
response.write "</td></tr></table></div>"
End sub
%>
</body>
</html>
Ed ecco qui che abbiamo la nostra form funzionante. L'oggetto NewMail è abbastanza semplice no?
Se volessimo delle copie carbone il NewMail ci permetterebbe di specificare anche:
<%
ObjMail.CC
ObjMail.BCC
%>
O potremmo formattare la email in HTML con la proprietà:
<% ObjMail.BodyFormat = CdoBodyFormatHTML %>
Ma adopereremo questo oggetto di nuovo nelle prossime lezioni e impareremo di più.