Avatar billede falslev Nybegynder
21. september 2001 - 09:45 Der er 13 kommentarer og
1 løsning

kontroller om en email adresse allerede findes i databasen

Jeg har en konkurrence på min side. Når man deltager i konkurrencen tilmeldes man automatisk nyhedsbrev.
Man skal svare på 2 spørgsmål, indtaste sit navn & Email.

Databasen er bygget op med 5 koloner:
- Email
- Status
- DeltagerNavn
- Spørgsmål1
- Spørgsmål2

Jeg mangler et script der kan gå ind og tjekke om email adressen ligger i databasen i forvejen og hvis den gør det skal den stadig indsætte emailen men indsæte \'OFF\' i status kolonen.

Min save side ser pt sådan ud :

<!-- #include file=\"ADOVBS.inc\" -->
<%

Function MyLookNiceString(MyVariable)
If IsNull(MyVariable) Or (Len(CStr(MyVariable)) = 0) Then
  MyLookNiceString = \"&nbsp;\"
Else
  MyLookNiceString = MyVariable
End If
End FunctionDim rsSave

\'Creating the Recordset Object
Set rsSave = Server.CreateObject(\"ADODB.RecordSet\")

\'Creating a DSN-Less connection to your Database
strDSN = \"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=\"&Server.MapPath(\"vare.mdb\")

rsSave.open \"Konkurrence\", strDSN, adOpenDynamic, adLockOptimistic, adCmdTable

rsSave.addnew

rsSave(\"Spørgsmål1\") = MyLookNiceString(request.form(\"Spørgsmål1\"))
rsSave(\"Spørgsmål2\") = MyLookNiceString(request.form(\"Spørgsmål2
\"))
rsSave(\"DeltagerNavn\") = MyLookNiceString(request.form(\"DeltagerNavn\"))
rsSave(\"Email\") = MyLookNiceString(request.form(\"Email\"))

varRedir = left(rsSave(\"Email\"), 1)
varRedir = Ucase(varRedir)

rsSave.update
rsSave.close
set rsSave = Nothing

response.redirect(\"konkurrence-modtaget.htm\")
%>

Håber en kan hjælpe mig da det virkeligt har voldt mig mange problemer.

Tak
Avatar billede nordclc Nybegynder
21. september 2001 - 09:48 #1
Kunne du ikke bruge denne løsning:

http://www.eksperten.dk/spm/111539

//Claus
Avatar billede nordclc Nybegynder
21. september 2001 - 10:25 #2
Prøv at se om dette virker (er ikke testet):
--------------------------------------------
<!-- #include file=\"ADOVBS.inc\" -->
<%

Function MyLookNiceString(MyVariable)
If IsNull(MyVariable) Or (Len(CStr(MyVariable)) = 0) Then
  MyLookNiceString = \"&nbsp;\"
Else
  MyLookNiceString = MyVariable
End If
End FunctionDim rsSave

\' Databaseforbindelse
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"vare.mdb\")
Conn.Open DSN

\' Hent fra databasen afhængig af værdien id fra URL
strSQL = \"Select count(*) as antal From konkurrence Where deltagernavn = \'\" & Request.form(\"deltagernavn\") & \"\'\"
strSQL = strSQL & \" and email = \'\" & Request.form(\"email\") & \"\'\"
Set rs = Conn.Execute(strSQL)

if rs(\"antal\") < 1 then
  \' Hvis den ikke findes forvejen
  strSQL = \"insert into konkurrence (Email,Status,DeltagerNavn,Spørgsmål1,Spørgsmål2) values(\'\"
  strSQL = srtSQL & request.form(\"email\") & \"\',\"
  strSQL = srtSQL & \"\'ON\',\"
  strSQL = srtSQL & \"\'\" & request.form(\"deltagernavn\") & \"\',\"
  strSQL = srtSQL & \"\'\" & request.form(\"spørgsmål1\") & \"\',\"
  strSQL = srtSQL & \"\'\" & request.form(\"spørgsmål2\") & \"\')\"
  Conn.Execute(strSQL)
else
  \' Hvis den findes i forvejen
  strSQL = \"insert into konkurrence (Email,Status,DeltagerNavn,Spørgsmål1,Spørgsmål2) values(\'\"
  strSQL = srtSQL & request.form(\"email\") & \"\',\"
  strSQL = srtSQL & \"\'OFF\',\"
  strSQL = srtSQL & \"\'\" & request.form(\"deltagernavn\") & \"\',\"
  strSQL = srtSQL & \"\'\" & request.form(\"spørgsmål1\") & \"\',\"
  strSQL = srtSQL & \"\'\" & request.form(\"spørgsmål2\") & \"\')\"
  Conn.Execute(strSQL)
end if

DataConn.Close
Set dataconn = nothing
set rs = nothing

response.redirect(\"konkurrence-modtaget.htm\")
%>
--------------------------------------------
//Claus
Avatar billede nordclc Nybegynder
21. september 2001 - 10:26 #3
Hov, jeg glemte lige din funktion! Kan du selv lægge den ind?
Avatar billede falslev Nybegynder
21. september 2001 - 11:34 #4
Hvilke fuktion er det ?
Avatar billede nordclc Nybegynder
21. september 2001 - 11:35 #5
Function MyLookNiceString(MyVariable)
If IsNull(MyVariable) Or (Len(CStr(MyVariable)) = 0) Then
  MyLookNiceString = \"&nbsp;\"
Else
  MyLookNiceString = MyVariable
End If
End FunctionDim rsSave

Avatar billede nordclc Nybegynder
22. september 2001 - 00:26 #6
Incl function (er ikke testet):
--------------------------------------------
<!-- #include file=\"ADOVBS.inc\" -->
<%

Function MyLookNiceString(MyVariable)
If IsNull(MyVariable) Or (Len(CStr(MyVariable)) = 0) Then
  MyLookNiceString = \"&nbsp;\"
Else
  MyLookNiceString = MyVariable
End If
End FunctionDim rsSave

\' Databaseforbindelse
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"vare.mdb\")
Conn.Open DSN

\' Hent fra databasen afhængig af værdien id fra URL
strSQL = \"Select count(*) as antal From konkurrence\"
strSQL = strSQL & \" Where deltagernavn = \'\" & MyLookNiceString(Request.form(\"deltagernavn\")) & \"\'\"
strSQL = strSQL & \" and email = \'\" & MyLookNiceString(Request.form(\"email\")) & \"\'\"
Set rs = Conn.Execute(strSQL)

if rs(\"antal\") < 1 then
  \' Hvis den ikke findes forvejen
  strSQL = \"insert into konkurrence (Email,Status,DeltagerNavn,Spørgsmål1,Spørgsmål2) values(\'\"
  strSQL = srtSQL & MyLookNiceString(request.form(\"email\")) & \"\',\"
  strSQL = srtSQL & \"\'ON\',\"
  strSQL = srtSQL & \"\'\" & MyLookNiceString(request.form(\"deltagernavn\")) & \"\',\"
  strSQL = srtSQL & \"\'\" & MyLookNiceString(request.form(\"spørgsmål1\")) & \"\',\"
  strSQL = srtSQL & \"\'\" & MyLookNiceString(request.form(\"spørgsmål2\")) & \"\')\"
  Conn.Execute(strSQL)
else
  \' Hvis den findes i forvejen
  strSQL = \"insert into konkurrence (Email,Status,DeltagerNavn,Spørgsmål1,Spørgsmål2) values(\'\"
  strSQL = srtSQL & request.form(\"email\") & \"\',\"
  strSQL = srtSQL & \"\'OFF\',\"
  strSQL = srtSQL & \"\'\" & MyLookNiceString(request.form(\"deltagernavn\")) & \"\',\"
  strSQL = srtSQL & \"\'\" & MyLookNiceString(request.form(\"spørgsmål1\")) & \"\',\"
  strSQL = srtSQL & \"\'\" & MyLookNiceString(request.form(\"spørgsmål2\")) & \"\')\"
  Conn.Execute(strSQL)
end if

DataConn.Close
Set dataconn = nothing
set rs = nothing

response.redirect(\"konkurrence-modtaget.htm\")
%>
--------------------------------------------
//Claus
Avatar billede falslev Nybegynder
22. september 2001 - 10:25 #7
Det virker desvære ikke.
Skriver ikke fejlen kommer bare side ikke fundet
Avatar billede nordclc Nybegynder
24. september 2001 - 07:51 #8
Mon ikke det er konkurrence-modtaget.htm? Ligger den i samme folder og navnet er rigtigt?

//Claus
Avatar billede falslev Nybegynder
24. september 2001 - 09:35 #9
Den er god nok.
Avatar billede nordclc Nybegynder
24. september 2001 - 09:41 #10
Hvad siger du til at maile mig databse og asp filer, så skal jeg lave det så det virker?

//Claus
Avatar billede falslev Nybegynder
24. september 2001 - 23:33 #11
Tak det må du meget gerne. Kan bare ikke fatte det.

Du kan hente de filerne her :

http://www.falslev.dk/nordclc/test.zip

Syntes virkeligt det er flot.

Avatar billede nordclc Nybegynder
25. september 2001 - 08:58 #12
I newsletter tabellen, skal du lige fjerne <standardværdi=Til> på feltet <status>. Så har jeg rettet nogle af mine egne fejl i ovenstående, men nu skulle det virke. Du skal sørge for, at der er skrive rettigheder til tabellen i den folder du lægger vare.mdb i. Hvis du lægger den et andet sted end dine asp filer, så skal du huske og rette stien i nedenstående.

Konkurrence-save.asp:
---------------------
<%

\' Databaseforbindelse
Set Conn = Server.CreateObject(\"ADODB.Connection\")
DSN = \"DRIVER={Microsoft Access Driver (*.mdb)}; \"
DSN = DSN & \"DBQ=\" & Server.MapPath (\"vare.mdb\")
Conn.Open DSN

\' Hent fra databasen afhængig af værdien id fra URL
strSQL = \"Select count(*) as antal From Newsletter Where DeltagerNavn = \'\" & Request.form(\"DeltagerNavn\") & \"\'\"
strSQL = strSQL & \" and Email = \'\" & Request.form(\"Email\") & \"\'\"
Set rs = Conn.Execute(strSQL)

if rs(\"antal\") < 1 then
  \' Hvis den ikke findes forvejen
  strSQL = \"insert into newsletter (Email,Status,DeltagerNavn,Dato,KonkurrenceSlut,Sp1,Sp2,Sp3) values(\'\"
  strSQL = strSQL & request.form(\"Email\") & \"\',\"
  strSQL = strSQL & \"\'ON\',\"
  strSQL = strSQL & \"\'\" & request.form(\"DeltagerNavn\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Dato\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"KonkurrenceSlut\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Sp1\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Sp2\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Sp3\") & \"\')\"
  response.write strSQL
  Conn.Execute(strSQL)
else
  \' Hvis den findes i forvejen
  strSQL = \"insert into newsletter (Email,Status,DeltagerNavn,Dato,KonkurrenceSlut,Sp1,Sp2,Sp3) values(\'\"
  strSQL = strSQL & request.form(\"Email\") & \"\',\"
  strSQL = strSQL & \"\'OFF\',\"
  strSQL = strSQL & \"\'\" & request.form(\"DeltagerNavn\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Dato\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"KonkurrenceSlut\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Sp1\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Sp2\") & \"\',\"
  strSQL = strSQL & \"\'\" & request.form(\"Sp3\") & \"\')\"
  response.write strSQL
  Conn.Execute(strSQL)
end if

Conn.Close
Set dataconn = nothing
set rs = nothing

response.redirect(\"konkurrence-modtaget.htm\")
%>

----------------------------------------------
//Claus
Avatar billede falslev Nybegynder
25. september 2001 - 12:56 #13
Arhh det havde jeg glemt det med standardværdien.

Tak tak tak tak er så glad. Du har virkeligt fjernet et stort pkt. fra min \'to do\' liste.

Håber jeg endda kan gøre gengæld somehow.
Avatar billede nordclc Nybegynder
25. september 2001 - 13:05 #14
Det var godt vi fik løst det ;o)
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester