20. juli 2001 - 12:41Der er
10 kommentarer og 1 løsning
Tjekke om data findes
Jeg skal lave en afmelding af nyhedsbrev, hvor brugeren skal udfylde sin mailadresse.
Der skal så tjekkes om den findes i databasen. Hvis den gør skal den slettes, hvis ikke så ......
Kender nogen en funktion til dette?
Jeg har prøvet med dette, men det virker ikke rigtigt:
function Tjekemail(mail) Set DBConn = Server.CreateObject(\"ADODB.Connection\") DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\") sqlString=\"SELECT userid FROM users WHERE useremail = \'\"& mail & \"\'\" Set RS = DBConn.Execute(sqlString)
if RS.EOF then Tjek=1 \'hvis den ikke findes else Tjek=0 \'mailen findes end if End function
\'Sletter bruger
function sletbruger(mail) Set DBConn = Server.CreateObject(\"ADODB.Connection\") DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
DBConn.Execute \"DELETE FROM users WHERE useremail = \'\"& mail & \"\'\" DBConn.Close Set DBConn = Nothing end function
mail=request.form(\"mail\") if mail=\"\" then message=\"Du skal skrive en emailadresse!\" else
Tjekemail(mail) if Tjek=1 then message=\"Det angivne emailadresse eksisterer ikke\" else if Tjek=0 then message=\"Du vil nu ikke længere modtage vores nyhedsbrev\" sletbruger(mail) end if end if end if
function Tjekemail(mail) Set DBConn = Server.CreateObject(\"ADODB.Connection\") DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\") sqlString=\"SELECT userid FROM users WHERE useremail LIKE \'\"& mail & \"\'\" Set RS = DBConn.Execute(sqlString)
if RS.EOF then Tjek=1 \'hvis den ikke findes else Tjek=0 \'mailen findes end if End function
\'Sletter bruger
function sletbruger(mail) Set DBConn = Server.CreateObject(\"ADODB.Connection\") DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
DBConn.Execute \"DELETE FROM users WHERE useremail LIKE \'\"& mail & \"\'\" DBConn.Close Set DBConn = Nothing end function
mail=request.form(\"mail\") if mail=\"\" then message=\"Du skal skrive en emailadresse!\" else
Tjekemail(mail) if Tjek=1 then message=\"Det angivne emailadresse eksisterer ikke\" else if Tjek=0 then message=\"Du vil nu ikke længere modtage vores nyhedsbrev\" sletbruger(mail) end if end if end if
Den skriver \"Du vil nu ikke længere modtage vores nyhedsbrev\" selv om mailen ikke findes. Der er det jo meningen at den skal cutte programmet og vende tilbage med beskeden: \"Det angivne emailadresse eksisterer ikke\"
function Tjekemail(mail) Set DBConn = Server.CreateObject(\"ADODB.Connection\") DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\") sqlString=\"SELECT userid FROM users WHERE useremail LIKE \'\"& mail & \"\'\" Set RS = DBConn.Execute(sqlString)
if RS.EOF then Tjek=1 \'hvis den ikke findes else Tjek=0 \'mailen findes end if Tjekemail= Tjek End function
\'Sletter bruger
function sletbruger(mail) Set DBConn = Server.CreateObject(\"ADODB.Connection\") DBConn.Open \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\" & Server.MapPath(\"data/newsletter.mdb\")
DBConn.Execute \"DELETE FROM users WHERE useremail LIKE \'\"& mail & \"\'\" DBConn.Close Set DBConn = Nothing end function
mail=request.form(\"mail\") if mail=\"\" then message=\"Du skal skrive en emailadresse!\" else
Tjek=Tjekemail(mail) if Tjek=1 then message=\"Det angivne emailadresse eksisterer ikke\" else if Tjek=0 then message=\"Du vil nu ikke længere modtage vores nyhedsbrev\" sletbruger(mail) end if end if end if
sqlString=\"SELECT COUNT(*) AS antal FROM users WHERE useremail LIKE \'\"& mail & \"\'\"
Så kan du se om rs(\"antal\") >= 1, og det fortæller om mail adressen eksisterer... Ovenstående SQL vil altid returnere netop 1 resultat, uanset om brugeren står der 0, 1 eller flere gange, og så er du ikke afhængig af, om resultatsættet bliver EOF
dodger.. ja, men jeg tror ikke at det funger fordi Tjek kun er en lokal variabel i funktionen, og derfor bliver slettet, når funktionen er færdig med eksekvere
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.