/ Forside / Teknologi / Udvikling / ASP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
ASP
#NavnPoint
smorch 9259
Harlekin 1866
molokyle 1040
Steffanst.. 758
gandalf 657
smilly 564
gibson 560
cumano 530
MouseKeep.. 480
10  Random 410
Undersøg om mail adressen findes
Fra : Martin Jørgensen


Dato : 09-09-04 09:48

Hej alle sammen

Jeg er kommet ind i et lille problem, og har brug for lidt hjælp.

Jeg har fundet dette lille stump kode, det undersøger om den
indtastet mail adresse findes i databasen:
<%
Dim mail

fejl = false

Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &
Server.MapPath("log/newsletter.mdb")

Set rs = Conn.execute ("SELECT * FROM user WHERE mail='" & mail &
"'")

If Not rs.Eof Then
Response.Write("<p><font color=red>Det indtastede mail adresse er
allerede tilmeldt vores nyhedsbrev.</font></p>")
fejl = true
End If

Conn.Close
Set Conn = Nothing
%>

Jeg kan godt få det til at virke, men kun hvis oplysningerne
sendes til en ny side, jeg vil gerne have at det skal valideres
på den indtastet side, er der en nem måde jeg kan gøre det på?


På forhånd tak for hjælpen.

Mvh
Martin Jørgensen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jens Gyldenkærne Cla~ (09-09-2004)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 09-09-04 10:06

Martin Jørgensen skrev:

> Set rs = Conn.execute ("SELECT * FROM user WHERE mail='" & mail &
> "'")

Lille note - hvis din kode skal virke efter hensigten, skal der også lige
lægges en værdi i variablen mail (fx mail = Request.Querystring("mail"))


> Jeg kan godt få det til at virke, men kun hvis oplysningerne
> sendes til en ny side, jeg vil gerne have at det skal valideres
> på den indtastet side, er der en nem måde jeg kan gøre det på?

Du kan sagtens have det på samme side som selve indtastningen. Det letteste
vil være at integrere tjek-funktionen i den funktion der opretter en mail i
usertabellen. I pseudokode:

If <der er indtastet en mailadresse> Then
   ' Tjek om adressen i forvejen ligger i tabellen
   sql = "SELECT mail FROM user WHERE mail = '" & mail & "'"
   set rs = conn.execute(sql)
   If rs.EOF Then
      ' Opret brugeren
   Else
      ' Giv besked om at mailadressen allerede er tilmeldt.
   End If
End If


Man kan også gøre det en smule mere avanceret ved at bruge fejlhåndtering.
Her benytter man sig af muligheden for at lægge et unikt indeks på
mail-feltet (det sikrer også mod at man får dubletter ind), samt af
muligheden for selv at håndtere asp-fejl.

I pseudokode ser det sådan ud:

' Slå automatisk fejlhåndtering fra
On Error Resume Next

If <der er indtastet en mailadresse> Then
   ' Prøv at oprette brugeren      
   sql = "INSERT INTO user (mail) VALUES ('" & mail & "')"
   Conn.Execute (sql)

   ' Tjek for fejl
   Select Case Err.Number
    Case 0
      ' Alt i orden - giv besked om oprettelsen
    Case <fejlkode ved dubletter>
      ' Mailadressen eksisterer i forvejen, giv besked
    Case Else
      ' Ukendt fejl - giv. evt. besked vha. Err-objektet
   End Select
End If

Den fejlkode man skal bruge i select case-sætningen er let at finde ved at
slå asp-fejlhåndteringen til igen (udkommenter On Error-linjen). Så får man
asp-parserens egen beskrivelse af fejlen - incl. fejlkoden. Den kan man så
sætte ind så man kan give sine brugere en "pænere" besked.

--
Jens Gyldenkærne Clausen
Svar venligst under det du citerer, og citer kun det der er
nødvendigt for at forstå dit svar i sammenhængen. Se hvorfor og
hvordan på http://usenet.dk/netikette/citatteknik.html

Søg
Reklame
Statistik
Spørgsmål : 177548
Tips : 31968
Nyheder : 719565
Indlæg : 6408803
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste