Tilmeldingsformularen

Siden er opdateret 12. 12. 2009

Sådan laver du en tilmeldingsformular, der kan tilføje en adresse i databasen eller (på brugers foranledning) slette en adresse (brugerens).

Øverst i body anbringes først et asp-script, der tjekker, om man er i færd med at tilføje eller slette en adresse. Er ingen af delene tilfældet, vises formularen:

<% Dim mode
mode = Request.QueryString("mode")
If mode = "" Then 'Hvis mode = ingenting - så vis formular til tilmelding/framelding %>

Dernæst laves en formular:

<form method="post" action="tilmeld.asp?mode=submit">
<fieldset>
<legend>Skriv din til/framelding</legend>
<label for="t1">E-mail adresse:</label>
<input type="text" id="t1" name="email" size="30" /><br />
<label for="t2">&nbsp;</label>
Tilmeld: <input id="t2" type="radio" name="status" value="tilmeld" checked="checked" />
Frameld: <input type="radio" name="status" value="frameld" /><br /><br />
<label for="subm"">&nbsp;</label><input id="subm" type="submit" value="Tilmeld/Frameld" />
</fieldset>
</form>

Læg mærke til, at der i action laves et fornyet kald til samme side - nu med et mode tilføjet. Derved genvises formularen ikke. I stedet vurderes data sendt fra formularen i forhold til eksisterende data i databasen. Dette sker i endnu et asp-script, der lægges efter formularen:

<% ElseIf mode = "submit" Then 'Hvis mode = "submit" så godkend og registrer indtastning

Dim email, status, error
error = False 'Bruges til at teste om der er sket fejl eller der er mangler i indtastning
email = Trim(Replace(Request.Form("email"), "'", ""))
status = Request.Form("status")

If Len(email) = 0 Then 'Tester om der er indtastet e-mail adresse
echo $"<h1>OBS</h1>"
echo $"<b>Du har ikke indtastet en e-mail adresse</b>"
error = True
End If

If error = False Then 'Tilføjer eller fjerner e-mail adresse fra database
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("database.mdb")
Conn.Open DSN

If status = "tilmeld" Then 'Tilmelder e-mails
Set rs = Conn.Execute("SELECT email FROM nyhedsbrev WHERE email='" & email & "'")
If Not rs.EOF Then
echo $"<h1>OBS</h1>"
echo $"<p>Denne e-mail adresse er allerede tilmeldt i systemet</p>"
Else
Conn.Execute("INSERT INTO nyhedsbrev (email) VALUES ('" & email & "')")
echo $"<h1>Tak for tilmeldingen</h1>"
echo $"<p>Du modtager fremover Nyhedsbreve</p>"
End If
End If 'Slutter tilmeld

If status = "frameld" Then 'Framelder e-mails
Set rs = Conn.Execute("SELECT email FROM nyhedsbrev WHERE email='" & email & "'")
If Not rs.EOF Then
Conn.Execute("DELETE * FROM nyhedsbrev WHERE email='" & email & "'")
echo $"<h1>Frameldingen er registreret</h1>"
echo $"<p>Du får ikke flere Nyhedsbreve</p>"
Else
echo $"<h1>OBS</h1>"
echo $"<p>Din e-mail adresse blev ikke fundet i systemet</p>"
End If
End If 'Slutter frameld
Conn.Close
Set Conn = Nothing
End If 'Slutter tilmeld/frameld %>
<p><a href="javascript:history.back()">&laquo;&nbsp;Tilbage</a></p>
<% End If %>

^ Tilbage til sidens top

Valid XHTML og CSS / Copyright © Hjemmesideskolen november 2004
Hjemmesideskolen
Du er her: Forsiden - scripts - nyhedsbrev - Tilmeldingsformularen
Brugere lige nu: 1
Home Mail