Set RSUser = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT f_Mail FROM t_Administrators"
If Request.Form("txtmail") = RSConn("f_Mail") Then
Response.Write "Du har redan registrerat dig med den mailen förut. "
ElseIf RSConn.Addnew
RSConn("f_Mail") = Request.Form("txtmail")
RSConn.Update
RSConn.Close
End If
skrev på fri hand så jag har inte testat den än, men stämmer det?
Nu förutsätter jag att ditt connection-objekt heter connect.
SQL = "SELECT f_Mail FROM t_Administrators where f_mail = '" & _
Request.Form("txtmail") & "'"
set rsconn = connect.execute(sql)
If not Rsconn.eof Then
Response.Write "Du har redan registrerat dig med den mailen förut. "
Else
RSConn.Addnew
RSConn("f_Mail") = Request.Form("txtmail")
RSConn.Update
RSConn.Close
End If
mjo tänkte så först men det är inte kul å titta på den koden :h
Lust å förklara innebörden med ' ? vill vara säker, annars kommer man ju aldrig att lära sig asp ordentligt om man inte fattar exakt när å varför man ska använda fnutten.
SQL = "SELECT f_Mail FROM t_Administrators where f_mail = '" & Request.Form("txtmail") & "' OR f_User = '" & Request.Form("txtAnvandare") & "'"
set RSConn = Connect.Execute(SQL)
If not Rsconn.eof Then
Response.Write "Mail adressen är upptagen, var god välj en annan.<br><a href=""login.asp?registrera"">Tillbaka</a> "
Else
'lägger till andänvaren osv osv här nedan...
där är en kontroll av både mail och användarnamnet.. hur ska jag göra så att den ska välja rätt felmeddelande vid rätt tilfälle? (har inte skrivigt in felmeddelandet för användaren än) eller måste man göra 2st skillda sql satser?
Så som det är nu kollar den antingen om det ena eller andra är upptaget. Vill du kolla båda så byta ut OR mot AND i din SQL-fråga. Menar du fnuttarna runt variablerna?
I så fall kommer här en förklaring:
Variabel av texttyp i access eller variabel av texttyp eller datumtyp i mysql och sql-server.
'" & variable &"'
Variabel av datumtyp i access
#" & variable &"#
Variabel av numerisk typ i samtliga tre
" & variable &"
SQL = "SELECT f_Mail, f_namn FROM t_Administrators where f_mail = '" & Request.Form("txtmail") & "' OR f_User = '" & Request.Form("txtAnvandare") & "'"
set rsconn = connect.execute(sql)
If not Rsconn.eof Then
if rsconn("f_mail") = " & Request.Form("txtmail") & " then
response.write "mailen var upptagen"
elseif rsconn("f_namn") = " & Request.Form("txtAnvandare") & " then
response.write "namnet var upptagen"
elseif rsconn("f_namn") = " & Request.Form("txtAnvandare") & " and rsconn("f_mail") = " & Request.Form("txtmail") & " then
response.write "båda var upptagna"
else
response.write "ett fel uppstod"
end if
Else
'#-- gör inserten --
End If
SQL = "SELECT f_Mail, f_User FROM t_Administrators where f_mail = '" & Request.Form("txtmail") & "' OR f_User = '" & Request.Form("txtAnvandare") & "'"
set rsconn = connect.execute(sql)
If not rsconn.eof Then
If RSConn("f_mail") = Request.Form("txtmail") Then
Response.Write "mailen var upptagen"
ElseIf RSConn("f_user") = Request.Form("txtAnvandare") Then
Response.Write "namnet var upptagen"
Else
Response.Write "båda var upptagna"
End If
Else
anvandare = Request.Form( "txtAnvandare" )
losenord = Request.Form("txtLosen")
mail = Request.Form( "txtMail" )
strSQL = "INSERT INTO t_Administrators "
strSQL = strSQL & "( f_User, f_Mail, f_Password ) "
strSQL = strSQL & "VALUES( '" & anvandare & "', '" & mail & "', '" & losenord & "' )"
Connect.Execute( strSQL )
Response.Redirect "login.asp?registrera=tack"
End If
End If
If Request.QueryString("registrera") = "tack" Then
Response.Write "<font class=smallheader>Tack för din registrering.</font><br>" &_
"<a href=login.asp?login>Logga in här</a>"
End If
Skriver jag in en mail som redan finns så säger den rätt fel mess men när användarnamnet redan finns så säger den att båda är fel fast det bara är användarnamnet..
Sätter jag tillbaka " & runt If RSConn("f_mail") = Request.Form("txtmail") Then och för användarna så klagar den på att Then väntas....Utan blir det inga felmeddelande men som sagt, den klarar inte läsa att användarnamnet är upptaget utan går ner till att båda är upptagna.
Liten hjärnblödning av mig, klade till en extra koll samt rättade till mina misstag, du såg nog inte in senaste redigering i förra svaret:
if not isnull(Request.Form("txtmail")) then
strmail = Cstr(Request.Form("txtmail"))
elseif not isnull(Request.Form("txtAnvandarel")) then
strAnvandare = Cstr(Request.Form("txtAnvandare"))
end if
SQL = "SELECT f_Mail, f_namn FROM t_Administrators where f_mail = '" & strmail & "' OR f_User = '" & strAnvandare & "'"
set rsconn = connect.execute(sql)
If not Rsconn.eof Then
if rsconn("f_mail") = strmail then
response.write "mailen var upptagen"
elseif rsconn("f_namn") = strAnvandare then
response.write "namnet var upptagen"
elseif rsconn("f_namn") = strAnvandare and rsconn("f_mail") = strmail then
response.write "båda var upptagna"
else
response.write "ett fel uppstod"
end if
Else
'#-- gör inserten --
End If
jag har ändrat.. jag postar koden så du får se om det e nån fjantig fnutt lr nåt jag missat :(
if not isnull(Request.Form("txtmail")) then
strmail = Cstr(Request.Form("txtmail"))
elseif not isnull(Request.Form("txtAnvandare")) then
strAnvandare = Cstr(Request.Form("txtAnvandare"))
end if
SQL = "SELECT f_Mail, f_User FROM t_Administrators where f_mail = '" & strmail & "' OR f_User = '" & strAnvandare & "'"
set rsconn = connect.execute(sql)
If not Rsconn.eof Then
if rsconn("f_mail") = strmail then
response.write "mailen var upptagen"
elseif rsconn("f_User") = strAnvandare then
response.write "namnet var upptagen"
elseif rsconn("f_User") = strAnvandare and rsconn("f_mail") = strmail then
response.write "båda var upptagna"
else
response.write "ett fel uppstod"
end if
Else
anvandare = Request.Form( "txtAnvandare" )
losenord = Request.Form("txtLosen")
mail = Request.Form( "txtMail" )
strSQL = "INSERT INTO t_Administrators "
strSQL = strSQL & "( f_User, f_Mail, f_Password ) "
strSQL = strSQL & "VALUES( '" & anvandare & "', '" & mail & "', '" & losenord & "' )"
Connect.Execute( strSQL )
Response.Redirect "login.asp?registrera=tack"
End If
Hmm, jag ljög nog lite, det är inte samma fel denna gången utan det spelar ingen roll om användarnamnet redan finns utan den skapar en ny med samma ändå :(
men det går inte att skapa en ny användare om mailen redan finns.
262 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e