Avatar billede newbie.dk Praktikant
29. marts 2005 - 11:20 Der er 8 kommentarer og
1 løsning

Email tjek - tillad begrænset antal

Jeg har en formular hvor jeg tjekker om emailen allerede findes i databasen, og hvis den gør kan man ikke afsende formen.

Nu vil jeg gerne tillade at folk kan tilmelde sig 3 gange pr. email. Kan man det? Og har I nogen idé om hvor krævende det er for systemet?

Min kode ser således ud:

set rs9 = server.createobject("adodb.connection")
tjek = "select email from TABEL where email = '"& request.form("email") & "'"
rs9.open DSN
set rs9 = rs9.execute(tjek)
if rs9.eof then

...
Avatar billede moejensen Nybegynder
29. marts 2005 - 11:25 #1
du skal enten lave et felt i din tabel, hvor du tæller antallet af gange en email er registreret ellers skal du bare adde flere i din database, og så bare tjekke antallet i din sql:

tjek = "select COUNT(*) AS antal from TABEL where email = '"& request.form("email") & "'"

hvis rs9("antal") > 3 så kan emailen ikke tilmeldes.
Avatar billede moejensen Nybegynder
29. marts 2005 - 11:25 #2
og det giver ikke en mærkelsesværdig større belastning for systemet.
Avatar billede fennec Nybegynder
29. marts 2005 - 11:35 #3
if rs9("antal") > 3 then

Det skal lige være:
if rs9("antal") >= 3 then

ellers kan man tilmelde sig 4 gange :o)

Jeg ville også vende if sætningen om, men det er en smags sag.
if rs9("antal") < 3 then
  'Tilmeld mail
  ...
else
  'er tilmeldt 3 gange allerede
  ...
end if
Avatar billede newbie.dk Praktikant
29. marts 2005 - 11:39 #4
Okay, fint.
Men da jeg er en klovn til at flette betingelser kunne du så ikke hjælpe. Det er meget vigtigt det virker, da DB'en er i brug. Og derfor vælger jeg ikke at tilføje noget i DB'en, men bruge din count.
Hele koden ser ala således ud:

set rs9 = server.createobject("adodb.connection")
tjek = "select email from TABEL where email = '"& request.form("email") & "'"
rs9.open DSN
set rs9 = rs9.execute(tjek)
if rs9.eof then
'emailen findes ikke i forvejen

    -- sidens indhold --


'afslut email tjek
else
response.write "<FONT face=Verdana size=2>E-mailen findes allerede <b>" & VarDobbeltMail
end if
Avatar billede moejensen Nybegynder
29. marts 2005 - 11:58 #5
Det er nok ikke så heldigt at du starter med at teste det på en side der er LIVE, så du bør nok teste det gørst i et udviklingsmiljø. Men her er et bud på det.

set rs9 = server.createobject("adodb.connection")
tjek = "select COUNT(*) AS antal from TABEL where email = '"& request.form("email") & "'"rs9.open DSN
set rs9 = rs9.execute(tjek)
if rs9("antal") < 3 then
'emailen findes ikke i forvejen

    -- sidens indhold --


'afslut email tjek
else
response.write "<FONT face=Verdana size=2>E-mailen findes allerede <b>" & VarDobbeltMail
end if
Avatar billede newbie.dk Praktikant
29. marts 2005 - 13:59 #6
Skal der ikke noget eof på?
Avatar billede moejensen Nybegynder
29. marts 2005 - 14:07 #7
nej for hvis email ikke er der, er antal bare 0
Avatar billede newbie.dk Praktikant
29. marts 2005 - 14:26 #8
Okay. Fint det prøver jeg. Der går lige lidt, sidder ikke ved min egen com.
Avatar billede newbie.dk Praktikant
29. marts 2005 - 15:59 #9
Kanon, det virkede med det samme.
Tak
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester