Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Record duplicati

  1. #1

    Record duplicati

    Salve a tutti
    Ho messo a punto una pagina di registrazione utenti per il sito che gestisco. Fin quà tutto bene.
    Il problema è nato quando mi sono accorto che si potevano registrare diversi utenti con lo stesso nome.
    Allora dal database access ho impostato per quel campo il valore duplicati non ammessi.

    Ora accade che quando un utente cerca di registrarsi con un nome utente già esistente esce una pagina d'errore di internet explorer, io vorrei che invece che venisse stanmpato a video un messaggio di errore da me impostato.

    Come devo fare?
    Ho già cercato su google ma non sono riuscito ad trovare soluzioni a me comprensibili
    Se qualcuno può darmi una mano!

    Grazie
    Antonio
    www.mariocastelnuovo.com

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Devi fare prima una query sulla tabella con il nome scelto dall'utente.
    Se non trova nulla consenti l'inserimento, se già lo trova scrivi il messaggio.

    Roby

  3. #3
    Scusa ma mi diresti come si fa una query?
    E come scrivo il codice per fare quello che mi hai consigliato?

    <<Devi fare prima una query sulla tabella con il nome scelto dall'utente.
    Se non trova nulla consenti l'inserimento, se già lo trova scrivi il messaggio.>>

    Ovviamente non stiamo parlando di access vero?
    La query è da fare nel codice asp, dico bene?
    Scusami ma sono alle prime armi e non vorrei... che mi partisse un colpo....
    www.mariocastelnuovo.com

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    codice:
    nick = trim(request.form("nick"))
    nick = replace(nick, "'", "''")
    if nick &"[]" <> "[]" then
    
    'Apri connessione
    sql = "SELECT nick FROM tutenti WHERE nick = '"& nick &"'"
    set rs = conn.Execute(sql)
    if rs.EOF then
    sql = "INSERT INTO tutenti (nick) VALUES ('"& nick &"')"
    conn.Execute(sql)
    else
    response.write("Nick già esistente!")
    end if
    set rs = nothing
    'Chiudi connessione
    
    end if
    Roby

  5. #5
    adesso so che manderai a quel paese, però non ho idea di dove piazzare il codice che mi hai cortesemente inviato.

    Il codice della mia pagina è questo:

    <%@LANGUAGE="VBSCRIPT"%>

    <%
    Dim MM_editAction
    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
    Dim MM_abortEdit
    MM_abortEdit = false
    %>
    <%
    If (CStr(Request("MM_insert")) = "form1") Then
    If (Not MM_abortEdit) Then
    ' execute the insert
    Dim MM_editCmd

    Set MM_editCmd = Server.CreateObject ("ADODB.Command")
    MM_editCmd.ActiveConnection = MM_utentisito_STRING
    MM_editCmd.CommandText = "INSERT INTO utenti (utente, passwordscelta, email) VALUES (?, ?, ?)"
    MM_editCmd.Prepared = true
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param1", 202, 1, 50, Request.Form("utente")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param2", 202, 1, 50, Request.Form("passwordscelta")) ' adVarWChar
    MM_editCmd.Parameters.Append MM_editCmd.CreateParameter("param3", 202, 1, 50, Request.Form("email")) ' adVarWChar
    MM_editCmd.Execute
    MM_editCmd.ActiveConnection.Close

    ' append the query string to the redirect URL
    Dim MM_editRedirectUrl
    MM_editRedirectUrl = "/utenti/grazie.asp"
    If (Request.QueryString <> "") Then
    If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0) Then
    MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
    Else
    MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
    End If
    End If
    Response.Redirect(MM_editRedirectUrl)
    End If
    End If
    %>
    <%
    Dim Recordset1
    Dim Recordset1_cmd
    Dim Recordset1_numRows

    Set Recordset1_cmd = Server.CreateObject ("ADODB.Command")
    Recordset1_cmd.ActiveConnection = MM_utentisito_STRING
    Recordset1_cmd.CommandText = "SELECT * FROM utenti"
    Recordset1_cmd.Prepared = true

    Set Recordset1 = Recordset1_cmd.Execute
    Recordset1_numRows = 0
    %>


    spero di non averti fatto arrabbiare.... )
    www.mariocastelnuovo.com

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Figurati.
    Nemmeno io so dove mettere quello che ti ho suggerito.
    Se sei alle prime armi come dici studia una guida senza affidarti a DW altrimenti non impari mai, nemmeno le basi.

    Roby

  7. #7
    Ho risolto, in dreamweaver c'è un comportamento server che fa proprio quello che mi serve, sono bastati due clic.
    Magari questa facilitazione non mi ha reso più esperto di asp, però intanto ho risolto il problema.
    Avevo chiesto a vari forum ma non avevo avuto risposta, a quanto pare dreamweaver ai principianti può servire....
    www.mariocastelnuovo.com

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.