Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464

    Controllo prima dell'inserimento

    Ciao a tutti,
    sono riuscito a sviluppare una integrazione che prevede un doppio inserimento in due database e mi spiego meglio.
    Il nuovo utente che si iscrive sul sito può, fleggando una checkbox, decidere di iscriversi anche alla mailinglist ma prima che questo avvenga vorrei verificare nella mailing list che l'indirizzo non sia già presente altrimenti riceverà doppia newsletter...
    L'inserimento funziona bene ma prima vorrei eseguire questo controllo.
    In pratica vorrei che se dopo il controllo verifica che l'indirizzo sia già presente debba annullare il codice di cui sotto...
    questo è il solo codice dell'inserimento:

    '-----dichiarazione variabili---------
    Dim Connmailing,StrConnectmailing

    '--------apro la connessione al db della Mailinglist
    Set Connmailing = Server.CreateObject("ADODB.Connection")
    StrConnectmailing = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & server.mappath("/mdb-database/MailingList.mdb") & ";Persist Security Info = False"

    Connmailing.open StrConnectmailing

    '---Controllo che non ci sia gia la stessa EMail
    SQL = " SELECT Mail FROM Mailinglist WHERE Mail = '" & EMail & "' "
    Set RS = Conn.Execute(SQL)
    If Not RS.EOF Then
    If Email = RS("Mail") Then
    Errore = Errore & "102," (qui al posto della segnalazione dell'errore vorrei semplicemente che non venga eseguita piu nessuna azione nel database della mailinglist)

    End If
    End If

    '--------- dichiaro le variabili della query di inserimento-------
    dim sqlmailing,rsmailing

    '---scrivo la query per inserire nome, cognome ed mail degli utenti---------
    sqlmailing = " Insert INTO Mailing (Nome, Cognome, Email) VALUES ('"& Nome &"', '"& Cognome &"','"& EMail &"')"
    Set rsmailing = Connmailing.Execute(sqlmailing)

    '----------fine modifica------
    End if


    Grazie mille in anticipo ;-)

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Codice PHP:
    If Email RS("Mail"Then
    response
    .redirect "paginachevuoi.xxx"
    End If
    End If 
    oppure fai cosi:
    Codice PHP:
    If Email RS("Mail"Then
    Response
    .write "errore...."
    else
    qui metti insert
    End 
    If
    End If 
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    ti ringrazio per l'attenzione ma non hai riosto alla mia domanda e cioè:
    se verifica l'indirizzo già esistente vorrei si fermasse li senza inviare errore ed altro perche contoinua con la sola iscrizione al database UTENTI e lascia perdere la Mailing list...
    ciao e buona domenica

  4. #4
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Certo che t'ho risposto, nonostante la domanda sommaria, è t'ho dato due soluzioni:
    1) Verifichi se la mail è presente rimandi ad una pagina "errore/avviso" e conseguentemente abbandoni qualsiasi operazione d'inserimento.
    2) Verifichi se la mail è presente e blocchi l'inserimento mostrando a video "errore/avviso" col response.write (che puoi togliere ma non avvisando l'utente potrebbe non capire).
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    scusa ma forse mi sono spiegato male...
    l'iscrizione in questione, quella principale, è al database come cliente...
    in piu gli propongo di iscriversi anche al db della mailinglist.... fleggando solo una checkbox.
    Ora se il suo indirizzo e.mail è gia presente nella mailinglist, cosa molto probabile, a me non interessa avvisarlo o dirgli qualche cosa in quanto il fine, cioè la sua iscirzione alla mailinglist l'ho già raggiunto... e quindi devo continuare con la sola iscrizione al db clienti...
    mi sono spiegato?

    posso farlo così?

    If Email = RS("Mail") Then
    response.end
    else
    qui metti insert

    e continuo solo con il db clienti?
    il problema che non riesco a fare il controllo...

  6. #6
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Le cose cambiano, prova cosi:
    Codice PHP:
    If Email RS("Mail"Then  
    qui metti insert registrazione utente una volta ultimata reindirizzi alla pagina ringraziamenti
    /avviso
    else 
    qui metti insert registrazione utente [b]+ registrazione mailinglist[/bin totale due insert una volta ultimate reindirizzi alla pagina ringraziamenti/avviso
    End 
    If 
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    a volte le soluzioni migliori sono quelle piu semplici... ottima idea stasera proverò ;-)
    grazie ancora

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Ciao Cavicchiandrea ho provato ma purtroppo non riesco a fare il controllo.
    Con il codice sotto se non metto la parte del controllo funziona tutto bene, cioè avviene l'iscrizione nei due database... ma se cerco di controllare mi da questo errore:

    Microsoft JET Database Engine (0x80040E37)
    Il modulo di gestione di database Microsoft Jet non è in grado di trovare la tabella o la query di input 'Mailing'. Verificare che esista e che il nome sia stato digitato correttamente.
    /aggiungi_utente.asp, line 139

    la linea 139 è : Set RSmailing = Conn.Execute(SQLmailing)

    ti posto tutto il codice della pagina:

    <%
    '---Dichiarazione variabili
    Dim Newsletter, Nome, Cognome, EMail, ..................ecc ecc

    '---Recupero i valori della Form
    Newsletter = Replace(Request.Form("Newsletter"), "'", "''")
    Nome = Trim(Replace(Request.Form("Nome"), "'", "''"))
    Cognome = Trim(Replace(Request.Form("Cognome"), "'", "''"))
    EMail = Trim(Replace(Request.Form("EMail"), "'", "''"))
    .................................................. ................ ecc ecc

    '---Controllo che non ci siano altri utenti con lo stesso UserID o con la stessa EMail
    SQL = " SELECT UserId, Mail FROM Utenti WHERE UserId = '" & UserId & "' OR Mail = '" & EMail & "' "
    Set RS = Conn.Execute(SQL)
    If Not RS.EOF Then
    If UserID = RS("UserID") Then
    Errore = Errore & "13,"
    End If
    If Email = RS("Mail") Then
    Errore = Errore & "14,"
    End If
    End If


    '---Invio la mail di conferma iscrizione
    If Errore = "" Then
    If ConfermaMail Then
    PagatoReferral = "False"
    Else
    PagatoReferral = "True"
    End If

    SQL = " Insert INTO Utenti (Nome, Cognome, ................. ecc ecc
    Set RS = Conn.Execute(SQL)


    '----Inizio modifica controllo ed iscrizione newsletter
    if request.form("newsletter") Then

    'dichiarazione variabili
    Dim Connmailing,StrConnectmailing

    'apro la connessione al db della Mailinglist
    Set Connmailing = Server.CreateObject("ADODB.Connection")
    StrConnectmailing = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & server.mappath("/mdb-database/mailinglist.mdb") & ";Persist Security Info = False"

    Connmailing.open StrConnectmailing


    'Controllo che non ci sia gia la stessa EMail
    SQLmailing = " SELECT Email FROM Mailing WHERE Email = '" & EMail & "' "
    Set RSmailing = Conn.Execute(SQLmailing)
    If Email = RS("EMail") Then

    response.write "ok"
    (qui vorrei fare prima una prova, se funziona poi gli dico di fare l'iscrizione....)

    else

    ' dichiaro le variabili della query di inserimento
    dim sqlmailing,rsmailing

    'scrivo la query per inserire nome, cognome ed mail degli utenti
    sqlmailing = " Insert INTO Mailing (Nome, Cognome, Email) VALUES ('"& Nome &"', '"& Cognome &"','"& EMail &"')"
    Set rsmailing = Connmailing.Execute(sqlmailing)

    End if
    End if

    'fine modifica

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    464
    Risolto grazie lo stesso!

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 © 2025 vBulletin Solutions, Inc. All rights reserved.