"Jacob Buus" <webmaster@thewaxpert.dk> skrev i en meddelelse
news:bfnqfg$ab4$1@sunsite.dk...
> Når folk så har tilmeldt sig skulle deres adresse så gerne
> automatisk blive gemt i en database og automatisk blive slettet
> når de framelder sig brevet.
> Er der nogen, der har en løsning. Ved godt der er en masse online
> mailinlister man kan benytte; men synes ikke at jeg kan få det
> til at virke....
> Hvad gør jeg?
Du kan tjekke på
www.uac.dk/nyhed.asp
Den første side hvor man indtaster mail ,er både ved tilmelding og
framelding, en ganske almindelige form som sender e-mailen videre til en
anden side.
Ved tilmelding står følgende asp-script øverst på siden som mailen sendes
videre til :
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/data/databasenavn.mdb")
Conn.Open DSN
SQLTjek = "Select * from tabelnavn where mail = '" & Request.Form("navnet på
emailfeltet fra form'en") & "'"
set rs = conn.execute(SQLTjek)
If rs.EOF Then
strSQL = "Insert into tabelnavn (kolonenavn) values('" &
Request.Form("navnet på emailfeltet fra form'en") & "')"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
Else
response.redirect("./fejlside.asp")
Conn.Close
Set Conn = Nothing
End If
%>
response.redirect("./fejlside.asp") henviser til en side hvor der gøres
opmærksom på, at e-mailen allerede er tilmeldt, hvis dette er tilfældet.
Derved undgår man at en email er tilmeldt mere end engang.
Afmelding forgår stort set på samme måde, dog med følgende asp-script:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("/data/databasenavn.mdb")
Conn.Open DSN
SQLTjek = "Select * from tabelnavn where mail = '" & Request.Form("navnet på
emailfeltet fra form'en") & "'"
set rs = conn.execute(SQLTjek)
If rs.EOF Then
response.redirect("./fejlside.asp")
Conn.Close
Set Conn = Nothing
Else
strSQL = "Delete from tabelnavn where kolonenavn= '" & Request.Form("navnet
på emailfeltet fra form'en") & "'"
Conn.Execute(strSQL)
Conn.Close
Set Conn = Nothing
End If
%>
response.redirect("./fejlside.asp") henviser her til en side, hvor man får
af vide hvis den mail man vil framelde, slet ikke er tilmeldt nyhedsbrevet i
forvejen, dette mindsker risikoen for at folk taster forkert, men tror de er
blevet frameldt.
Denne løsning kræver godt nok 6 sider, men den virker perfekt, og er stabil.
Håber det hjælper dig lidt på vej.
--
Ulrik Chr.
nettet@uac.dk
www.uac.dk