rs.AddNew
Jeg er i gang med et bruger-system på www.balladefis.dk, og jeg bruger følgende når brugere tilmelder sig:Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM [users]", Conn, 1, 3
rs.AddNew
rs("registered") = Now()
rs("IP") = Request.ServerVariables("REMOTE_ADDR")
rs("brugernavn") = request.form("username")
rs("password") = request.form("kodeord")
rs("email") = LCase(request.form("email"))
rs("postnummer") = request.form("postnummer")
rs("nyhedsbrev") = request.form("nyhedsbrev")
rs.Update
Nu vil jeg gerne ha, at der skal blive sendt en email til folk, som indeholder et link. Dette link aktiverer ens konto, og jeg har tænkt mig at lave det således:
Når der bliver added en ny bruger, så skal man på en eller anden måde få fat i brugerens ID, som lige er blevet oprettet i databasen (autonumber). Derefter bliver der sendt en email via Jmail. F.eks., så skal den få følgende informationer fra det nye ID:
-brugernavn
-password
-ID
<a href="godkendelse_via_email.asp?bruger=<%=rs("brugernavn")%>&password=<%=rs("kodeord")%>&email=<%=rs("email")%>&ID=<%=rs("ID")%>">Klik her for at bekræfte</a>
Denne lille kode skal sendes til brugeren ligeså snart han/hun opretter sig. rs-informationerne skal hentes fra det nye ID som er blevet tildelt til brugeren ved oprettelsen. Når han modtager emailen, så vil ovenstående kode stå i mailen. Hvis han klikker der, har jeg tænkt mig at gøre følgende:
Set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open "SELECT * FROM users WHERE id = " & Request("ID"), Conn, 1, 1
strID = rs("ID")
if rs("ID") <> request("ID") OR rs("brugernavn") <> request("brugernavn") OR rs("kodeord") <> request("password") then response.redirect("error.asp")
Nu bliver der checked om alle de informationer stemmer med dem i databasen. Hvis de stemmer, så:
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/database.mdb")
Conn.Open DSN
strSQL = "Update users set "
strSQL = strSQL & "accepted='ja'"
strSQL = strSQL & " where ID = " & strID
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
response.redirect("godkendt.asp")
nu vil den opdatere et felt i databasen (ud fra brugerens ID), og brugeren kan nu derfor logge ind, da feltet er "ja" og ikke "nej".
Håber I forstår hvad jeg mener med dette. Men i såfald:
1. Er det en sikker måde at gøre det på? (email-bekræftelse)
2. Hvordan får man fat i ID'en fra rs.AddNew?
3. Er der andre måder at lave email-bekræftelse på?
