Un semplice e simpatico sistema per ricevere opinioni dai propri utenti è quello di farsi spedire un sondaggio via email, soluzione adatta soprattutto ai siti amatoriali o che dispongono di uno spazio Web con supporto limitato di ASP, linguaggio con cui implementeremo l’esempio.
Il concetto è semplicissimo e non si distacca di molto da un semplice modulo per farsi contattare via email. Chiederemo all’utente il nome, l’email e poi lo sottoporremo alla domanda del sondaggio.
Segue un semplice codice di esempio da eseguire per intero nel file “sondaggio.asp” che utilizza l’oggetto CDOSYS per inviare la mail:
<%@LANGUAGE = VBScript%>
<%
Dim domanda
domanda = "qual'è il tuo colore preferito?"
%>
<html>
<body>
<h1>Sondaggio</h1>
<form method="post" action="sondaggio.asp">
Tuo nome<br>
<input type="text" name="nome"><br>
Tua email<br>
<input type="text" name="email"><br>
Domanda: <%=domanda%><br>
<input type="radio" name="risp" value="rosso" checked> rosso<br>
<input type="radio" name="risp" value="rosso"> giallo<br>
<input type="radio" name="risp" value="rosso"> verde<br>
<input type="radio" name="risp" value="rosso"> blu<br>
<input type="submit" name="sondaggio" value="Rispondi">
</form>
<%
If Request.Form("sondaggio") <> "" Then
Dim nome, email, risp
nome = Request.Form("nome")
email = Request.Form("email")
risp = Request.Form("risp")
If nome = "" Then
Response.Write "Inserisci il tuo nome"
ElseIf InStr(email, "@") = 0 Then
Response.Write "Inserisci la tua email"
ElseIf risp = "" Then
Response.Write "Vota il sondaggio"
Else
Dim MyMail
Set MyMail = Server.CreateObject("CDO.Message")
With MyMail
.To = "tua@mail.ext" ' Qui la tua email
.From = email
.Subject = "Sondaggio: " & domanda
.TextBody = nome & " ha risposto " & risp
.Send
End With
Set MyMail = Nothing
Response.Write "Sondaggio inviato via email, grazie!"
End If
End If
%>
</body>
</html>
Non credo ci sia bisogno di particolari commenti e delucidazioni tecniche. Consiglio di implementare il controllo sul corretto inserimento dell’email con le espressioni regolari al posto del più scarno
ElseIf InStr(email, "@") = 0 Then
e raccomando di inserire la propria email in questa riga
.To = "tua@mail.ext" ' Qui la tua email
E’ inoltre doveroso specificare testualmente che l’email viene usata solo per eventuali risposte, che il sondaggio viene effettuato direttamente via posta elettronica e nessun dato verrà registrato su database ed utilizzato per secondi fini.
