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

    Controllo record già presente

    Salve ragazzi sto creando una mailing listi e devo fare in modo che al momento dell'inserimento dati da parte dell'utente vi sia un controllo per vedere se quella mail è gia presente per impedire un doppio inserimento.

    Ho inserito il controllo ma nulla non funziona, mi inserisce sempre il record.:

    Questo è il codice:

    codice:
    <%
    Dim rsInserisciMail
    Dim rsInserisciMail_numRows
    
    Set rsInserisciMail = Server.CreateObject("ADODB.Recordset")
    rsInserisciMail.ActiveConnection = MM_mailingInfo_STRING
    rsInserisciMail.Source = "SELECT * FROM mailing where mail='"& mail & "'" 
    rsInserisciMail.CursorType = 0
    rsInserisciMail.CursorLocation = 2
    rsInserisciMail.LockType = 1
    rsInserisciMail.Open()
    
    rsInserisciMail_numRows = 0
    %>
    <%
    ' *** Edit Operations: declare variables
    
    Dim MM_editAction
    Dim MM_abortEdit
    Dim MM_editQuery
    Dim MM_editCmd
    
    Dim MM_editConnection
    Dim MM_editTable
    Dim MM_editRedirectUrl
    Dim MM_editColumn
    Dim MM_recordId
    
    Dim MM_fieldsStr
    Dim MM_columnsStr
    Dim MM_fields
    Dim MM_columns
    Dim MM_typeArray
    Dim MM_formVal
    Dim MM_delim
    Dim MM_altVal
    Dim MM_emptyVal
    Dim MM_i
    
    MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
    If (Request.QueryString <> "") Then
      MM_editAction = MM_editAction & "?" & Server.HTMLEncode(Request.QueryString)
    End If
    
    ' boolean to abort record edit
    MM_abortEdit = false
    
    ' query string to execute
    MM_editQuery = ""
    %>
    <%
    if rsInserisciMail.eof then
    %> 
    <%
    ' *** Insert Record: set variables
    
    If (CStr(Request("MM_insert")) = "inserisciMail") Then
    
      MM_editConnection = MM_mailingInfo_STRING
      MM_editTable = "mailing"
      MM_editRedirectUrl = "inserimento_ok.asp"
      MM_fieldsStr  = "mail|value"
      MM_columnsStr = "mail|',none,''"
    
      ' create the MM_fields and MM_columns arrays
      MM_fields = Split(MM_fieldsStr, "|")
      MM_columns = Split(MM_columnsStr, "|")
      
      ' set the form values
      For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
        MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
      Next
    
      ' append the query string to the redirect URL
      If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
        If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
          MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
        Else
          MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
        End If
      End If
    
    End If
    %>
    <%
    ' *** Insert Record: construct a sql insert statement and execute it
    
    Dim MM_tableValues
    Dim MM_dbValues
    
    If (CStr(Request("MM_insert")) <> "") Then
    
      ' create the sql insert statement
      MM_tableValues = ""
      MM_dbValues = ""
      For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
        MM_formVal = MM_fields(MM_i+1)
        MM_typeArray = Split(MM_columns(MM_i+1),",")
        MM_delim = MM_typeArray(0)
        If (MM_delim = "none") Then MM_delim = ""
        MM_altVal = MM_typeArray(1)
        If (MM_altVal = "none") Then MM_altVal = ""
        MM_emptyVal = MM_typeArray(2)
        If (MM_emptyVal = "none") Then MM_emptyVal = ""
        If (MM_formVal = "") Then
          MM_formVal = MM_emptyVal
        Else
          If (MM_altVal <> "") Then
            MM_formVal = MM_altVal
          ElseIf (MM_delim = "'") Then  ' escape quotes
            MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
          Else
            MM_formVal = MM_delim + MM_formVal + MM_delim
          End If
        End If
        If (MM_i <> LBound(MM_fields)) Then
          MM_tableValues = MM_tableValues & ","
          MM_dbValues = MM_dbValues & ","
        End If
        MM_tableValues = MM_tableValues & MM_columns(MM_i)
        MM_dbValues = MM_dbValues & MM_formVal
      Next
      MM_editQuery = "insert into " & MM_editTable & " (" & MM_tableValues & ") values (" & MM_dbValues & ")"
    
      If (Not MM_abortEdit) Then
        ' execute the insert
        Set MM_editCmd = Server.CreateObject("ADODB.Command")
        MM_editCmd.ActiveConnection = MM_editConnection
        MM_editCmd.CommandText = MM_editQuery
        MM_editCmd.Execute
        MM_editCmd.ActiveConnection.Close
    
        If (MM_editRedirectUrl <> "") Then
          Response.Redirect(MM_editRedirectUrl)
        End If
      End If
    
    End If
    %>
    <%
    else 
    response.write "Mail già presente"
    end if
    %> 
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Documento senza titolo</title>
    <style type="text/css">
    .testo {font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;font-weight: normal;color: #333333;}
    .Stile1 {font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: bold; color: #333333; }
    </style>
    </head>
    
    <body>
    
    
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td align="center"><table width="300" border="0" cellspacing="0" cellpadding="0">
    	<tr>
            <td align="center" class="Stile1">Inserimento news letter </td>
          </tr>
          <tr>
            <td align="left"></td>
          </tr>
          <tr>
            <td align="left" class="testo"><form id="inserisciMail" name="inserisciMail" method="POST" action="<%=MM_editAction%>">
              <table width="300" border="0" cellspacing="0" cellpadding="0">
                <tr>
                  <td>Email: 
                    <label>
                    <input name="mail" type="text" class="testo" id="mail" size="40" />
                    </label></td>
                </tr>
                <tr>
                  <td></td>
                </tr>
                <tr>
                  <td align="center"><label>
                    <input name="Submit" type="submit" class="testo" value="Inserisci mail" />
                  </label></td>
                </tr>
              </table>
                    
              <input type="hidden" name="MM_insert" value="inserisciMail">
    </form> 
            </td>
          </tr>
          
        </table></td>
      </tr>
    </table>
    </body>
    </html>
    <%
    rsInserisciMail.Close()
    Set rsInserisciMail = Nothing
    %>
    In rosso ho evidenziato le parti che secondo me fanno da controllo e il form per l'inserimento.

    Nn risco a capire perchè non mi fa il controllo.


  2. #2
    Prova a farti stampare la query:

    codice:
    rsInserisciMail.Source = "SELECT * FROM mailing where mail='"& mail & "'" 
    response.write(rsInserisciMail.Source)
    ...provare la stessa sul tuo DB e vedere se funziona e se ti pesca un dato eventualmente già registrato.
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  3. #3
    Se provo a stampare la quesry a video mi da il seguente messaggio:

    "SELECT * FROM mailing where mail='' "

    E' come se nn vedesse il campo per il confronto.


  4. #4
    Non gli arriva il valore di <mail>.
    Devi indagare perchè?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da bibuz
    Se provo a stampare la quesry a video mi da il seguente messaggio:

    "SELECT * FROM mailing where mail='' "

    E' come se nn vedesse il campo per il confronto.

    significa che la variabile mail non è valorizzata!

    cerca l'inghippo...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  6. #6
    Sei arrivato dopo...
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

  7. #7
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da maximum
    Sei arrivato dopo...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  8. #8
    Ho provato a valorizzare la variabile in questo modo:

    codice:
    "SELECT * FROM mailing WHERE mail = '" + Replace(rsInserisciMail__MMColParam, "'", "''") + "'"
    Il risultato che ottengo è questo:

    SELECT * FROM mailing WHERE mail = '1'

  9. #9
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da bibuz
    Ho provato a valorizzare la variabile in questo modo:

    codice:
    "SELECT * FROM mailing WHERE mail = '" + Replace(rsInserisciMail__MMColParam, "'", "''") + "'"
    Il risultato che ottengo è questo:

    SELECT * FROM mailing WHERE mail = '1'
    se la variabile mail deve contenere un indirizzo email, non va bene...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  10. #10
    Aggiungo, se questa query:

    SELECT * FROM mailing WHERE mail = '1'

    la provi sul tuo DB, tira fuori qualcosa!?
    Provare paura per un qualcosa che ti possa capitare nel futuro non ti evita quell'evento,ti fa soltanto vivere un presente sbagliato!

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.