---
title: "Kolla om mailen redan finns i databasen vid registrering"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/41659-kolla-om-mailen-redan-finns-i-databasen-vid-registrering"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Sico"
published: "2002-04-15T15:22:36.000Z"
updated: "2002-04-16T10:29:11.000Z"
replies: 36
views: 841
page: 1
pages: 2
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/41659-kolla-om-mailen-redan-finns-i-databasen-vid-registrering"
---

# Kolla om mailen redan finns i databasen vid registrering

_Sida 1 av 2._

## #1 — Sico, 2002-04-15T15:22Z

```
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?

Permalänk: https://www.webforum.nu/p/41659

## #2 — Ekström, 2002-04-15T15:25Z

Du måste väl loopa ut det, annars kollar den ju bara på den översta posten. Eller har jag fel?

Permalänk: https://www.webforum.nu/p/646488

## #3 — LarsG, 2002-04-15T15:43Z

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
```

Permalänk: https://www.webforum.nu/p/646514

## #4 — Jörgen HP, 2002-04-15T15:45Z

Svarade på det härom dagen:

<http://www.webforum.nu/showthread.php?s=&threadid=40659>

Permalänk: https://www.webforum.nu/p/646515

## #5 — Sico, 2002-04-15T16:03Z

ok, tackar... jag har läst en del om asp men har inte hittat nåt som förklarar vad alla små finurliga tecken gör. vad gör ' igentligen? 

Sen vet jag ju att RSConn.addnew suger, hur ska jag göra för att lägga till genom sql satsen?

```
namn = Request.Form( "txtnamn" )
mail = Request.Form( "txtmail" )

strSQL = "INSERT INTO t_Administrator "
strSQL = strSQL & "( f_Namn, f_Mail ) "
strSQL = strSQL & "VALUES( '" & namn & "', " & mail & " )"

Databas.Execute( strSQL )
```

har jag fel? jag chansar lite

Permalänk: https://www.webforum.nu/p/646530

## #6 — Jörgen HP, 2002-04-15T16:14Z

Det ser rätt ut :D

Minemal förenkling och optimering:

```
sql ="INSERT INTO t_Administrator (f_namn, f_Mail) VALUES('" & Request.Form( "txtnamn" ) & "', '" & Request.Form( "txtmail" ) & "')"

Databas.Execute sql,,128
```

Permalänk: https://www.webforum.nu/p/646544

## #7 — Sico, 2002-04-15T16:22Z

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.

Permalänk: https://www.webforum.nu/p/646553

## #8 — Skarre, 2002-04-15T16:52Z

Det låter som om en grundläggande kurs/bok i ASP skulle göra dig nytta. "Beginning Active Server Pages 3.0" från "Wrox" är riktigt bra.

Permalänk: https://www.webforum.nu/p/646583

## #9 — Sico, 2002-04-15T17:05Z

```
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?

Permalänk: https://www.webforum.nu/p/646593

## #10 — Jörgen HP, 2002-04-15T17:52Z

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 &"
```

Permalänk: https://www.webforum.nu/p/646624

## #11 — Sico, 2002-04-15T17:56Z

ok, jag byter ut OR mot AND. men hur ska jag kunna specificera vilket felmess den ska visa?

Permalänk: https://www.webforum.nu/p/646627

## #12 — Jörgen HP, 2002-04-15T18:07Z

Med nedanstående bör du ha OR i din sql-fråga

```

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
```

Permalänk: https://www.webforum.nu/p/646636

## #13 — Sico, 2002-04-15T18:41Z

Funkar nästan...  

```
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.

Permalänk: https://www.webforum.nu/p/646672

## #14 — Jörgen HP, 2002-04-15T18:55Z

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
```

Permalänk: https://www.webforum.nu/p/646683

## #15 — Sico, 2002-04-15T19:04Z

samma fel som innan, har du gjort nån redigering denna gången? :)

Permalänk: https://www.webforum.nu/p/646690

## #16 — Jörgen HP, 2002-04-15T19:08Z

Du har två namn på ett fält, vilket gäller f_namn eller f_user?

Permalänk: https://www.webforum.nu/p/646694

## #17 — Sico, 2002-04-15T19:09Z

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
```

Permalänk: https://www.webforum.nu/p/646696

## #18 — Jörgen HP, 2002-04-15T19:18Z

Visserligen är jag rätt trött i hönshjärnan nu, men jag hittar tyvärr inget fel i min senaste kod, förutom de fältnamnen du ändrade.  :(

Permalänk: https://www.webforum.nu/p/646700

## #19 — Sico, 2002-04-15T19:22Z

Jag tror jag läst koderna du skickat typ 500ggr så jag lär ju se i syne. Fasen åxå då!!

Permalänk: https://www.webforum.nu/p/646702

## #20 — Sico, 2002-04-15T19:38Z

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.

Permalänk: https://www.webforum.nu/p/646714

---

Tråden på webben: https://www.webforum.nu/amne/asp/41659-kolla-om-mailen-redan-finns-i-databasen-vid-registrering  
Nästa sida: https://www.webforum.nu/amne/asp/41659-kolla-om-mailen-redan-finns-i-databasen-vid-registrering/page2.md
