Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Form Mail - Problema con refresh

    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

    codice:
    [...]
    <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>
    e il codice di invio.asp

    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>
    Sperando che possa essere anche utile ad altri...

    Grazie, Ciao!

  2. #2
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    fai un redirect ad un altra pagina invence di mostrare nella stessa il codice

    Codice PHP:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <
    html>
    <
    head>
    <
    title>Recupero Password</title>
    </
    head>
    <
    body>
    <%=
    x%>
    </
    body>
    </
    html

  3. #3
    Ci ho già provato ma usando la freccia back del browser il problema è lo stesso.

  4. #4
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    impostagli un cookie e risolvi...

  5. #5
    pensavo ci potesse essere una soluzione più "semplice", ma credo proprio che farò così...

  6. #6
    come si fa ad impostare un cookie? anche io ho lo stesso identico problema.
    Ho una pagina di avvenuta conferma inserimento record che invia automaticamente una email. Se l'utente aggiorna la pagina, l'email viene inviata più volte

  7. #7
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    Per creare un cookie
    Codice PHP:
    <%
    Response.Cookies("nome")="iceblu"
    %> 
    Per ottenere il valore di un cookie

    Codice PHP:
    <%nome=Request.Cookies("nome")%> 
    Per approfondimenti

    http://www.w3schools.com/ASP/asp_cookies.asp

  8. #8
    si daccordo ma come lo integro nella mia pagina?
    la pagina di invio contiene uno script che invia una email
    Come procedo? creo un cookie al caricamento della pagina.
    e poi cosa faccio? Quando l'utente aggiorna la pagina cosa succede?

  9. #9
    Utente di HTML.it L'avatar di iceblu
    Registrato dal
    Jun 2006
    Messaggi
    246
    Un po d'iniziativa però....

    [PHP]
    If Request.Cookies("spedito") = "si" then
    ' è già stata spedita
    Else
    'qui ci metto il codice per l'invio
    '.......
    '.......
    '.......

    'Qui salvo il cookie spedito = "si" cosi che la prossima volta non lo spedisce più
    Response.Cookies("spedito")="si"
    End if

  10. #10
    si hai ragione è un periodo che sono un pò pigro.
    Ma se al posto dei cookie utilizzassi una variabile di sessione?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.