Buon giorno a tutti.
Vi reco disturbo per una piccola inezia, ma che mi sta letteralmente intasando la casella email.
Io ho una serie di form mail con i quali gli utenti del mio sito possono comunicare con gli amministratori, ecc... e altri form mail con i quali gli utenti possono ricevere una mail, ad esempio, con le proprie credenziali di accesso (recupero password).
La struttura è quella classica: una pagina form.htm con inserimento campi controllato da javascript in cui inserire i dati e una pagina invio.asp che recupera i dati da un DB Access, li invia via mail e conferma all'utente l'avvenuto invio.
Il problema risiede nel fatto che se l'utente esegue un referesh della pagina invio.asp o torna indietro con il back del browser l'email viene spedita nuovamente tante volte quante l'utente effettua il referesh, ecc... d'altronde non posso lamentarmi invio.asp fa solo quello che le viene detto di fare... c'è qualche "filtro" che posso usare? qualcuno può aiutarmi?
Posto il codice di form.htm
e il codice di invio.aspcodice:[...] <head> [...] <script language="javascript"> function invalid() { if (document.email.T1.value == "" || document.myform.T1.value.indexOf('@',0) == -1 || document.myform.T1.value.indexOf('.',0) == -1) { alert("Non hai inserito un indirizzo email valido!"); return false; } return true; } </script> </head> <body> [...] <form name="email" method="POST" action="invio.asp" onSubmit="return invalid();"> <table border="0" width="100%"> <tr> <td id="sep" align="center"> Inserendo il tuo indirizzo, riceverai una em@il contente le tue Credenziali di Accesso. Il Servizio di Recupero della Password funziona solo se l'Anagrafica è stata aggiornata con un indirizzo em@il valido. Em@il: <input type="text" name="T1" size="31"> </td> </tr> <tr> <td width="100%" align="center"> <input type="submit" value="Submit" name="B1"> </td> </tr> </table> </form>
Sperando che possa essere anche utile ad altri...codice:<%Response.Buffer=TRUE%> <% Set conn = server.createobject("adodb.connection") DSNtemp = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.Mappath("/mdb-database/db.mdb") conn.Open DSNtemp email = Request.Form("T1") SQL = "Select * From users Where email = '" & email & "'" Set RS = Conn.Execute(SQL) If NOT RS.EOF Then Dim ObjMail Set ObjMail = Server.CreateObject("CDO.Message") ObjMail.To = RS("email") Objmail.From = "casella@tuodominio.it" ObjMail.Subject = "Recupero Password" ObjMail.HTMLBody = mytxt & "Ciao, " & RS("Nome") &"! Ti ricordo che le tue credenziali di accesso al Sistema. UserName = " & RS("UID") &" Password : " & RS("PWD") & " Lo Staff" ObjMail.Send Set ObjMail = Nothing x = "La tua Password è stata inviata all'indirizzo em@il " & RS("email") & " <font size='1'>TORNA HOMEPAGE</font> " Else x = "L'Indrizzo em@il non risulta nei nostri DataBase! <font size='1'>TORNA INDIETRO</font> " End If %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Recupero Password</title> </head> <body> <%=x%> </body> </html>
Grazie, Ciao!

Rispondi quotando
