Avatar billede thue Nybegynder
07. november 2006 - 14:37 Der er 9 kommentarer og
1 løsning

ASP: Nyhedsbrev problemer

Kære Eksperter (nok mest ellebak og thesurfer jf tidl. spm).

Jeg har nu følgende asp-kode (i filen nyhedsbrev.asp):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="" content="">
<title>Nyhedsbrev - tilmelding</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link REL="StyleSheet" HREF="style.css" type="text/css">
</head>
<body>

<%
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString="DRIVER={MySQL};SERVER=localhost;"_
&"DATABASE=kommuneanalyse_;UID=kommuneanalyse_;PWD=XXXXXX;"
objConn.Open

objRS.Open "SELECT * FROM signups", objConn, 3,3

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

if request.form("tilmeld") <> "" then
  'har brugeren trykket på tilmeld?

  navn = replace(request.form("navn"), "'", "")
  email = replace(request.form("email"), "'", "")

  sql = "SELECT * FROM nyhedsbrev WHERE navn = '"&navn&"' AND email = '"&email&"'"
  set rsTest = rs.execute(sql)
  'tjekker om brugeren allerede er tilmeldt.
  if not rsTest.eof then
    'brugeren er allerede tilmeldt.
    response.write "Du er allerede tilmeldt."
  else
    'brugeren er ikke tilmeldt, så gemmer hans oplysninger i databasen.
    sql = "INSERT INTO nyhedsbrev(navn, email) VALUES('"&navn&"','"&email&"')"
    rs.execute(sql)
    response.write "Du er nu tilmeldt nyhedsbrevet."
    end if
elseif request.form("afmeld") <> "" then
  'er der trykket på afmeld?
  navn = replace(request.form("navn"), "'", "''")
  email = replace(request.form("email"), "'", "")
  sql = "DELETE FROM nyhedsbrev WHERE navn = '"&navn&"' AND email = '"&email&"'"
  rs.execute(sql)
  response.write "Du er nu afmeldt nyhedsbrevet."
else
'der er ikke udfyldt noget i formen, og den vises derfor.
response.write "Der skete en fejl"
end if
%>
</body>
</html>

Jeg har følgende html-kode i min default.html:

<div class="leftmain">

<div class="overskrift2">Nyhedsbrev</div></p>
Vi udsender et nyhedsbrev hver måned. Du kan tilmelde dig her.
<form action="nyhedsbrev.asp" method="post">
<fieldset>
<div>
<label for="t1">Navn:</label><input type="text" name="navn" id="t1"></p>
<label for="t2">E-mail:</label><input type="text" name="email" id="t2"></p>
</div>
<div>
<label for="t3">Vælg:</label>
<input type="submit" value="Tilmeld" id="submit" name="tilmeld">&nbsp;
<input type="submit" value="Afmeld" id="submit" name="afmeld">
</div>
</fieldset>
</form>

</div></br>

Det giver denne fejlmeddelelse:
Error Type:
Sun ONE ASP VBScript runtime (0x800A01A8)
Object required: 'rs'
/nyhedsbrev.asp, line 35


Linje 35 =
  set rsTest = rs.execute(sql)

PLEASE HELP...

Venligst
Thue
Avatar billede thue Nybegynder
07. november 2006 - 14:52 #1
Avatar billede goose Nybegynder
07. november 2006 - 14:54 #2
Prøv og ret:

set rsTest = rs.execute(sql)

til:

set rsTest = objConn.execute(sql)

/Goose
Avatar billede thue Nybegynder
07. november 2006 - 15:03 #3
Det giver følgende resultat:

Error Type:
Sun ONE ASP VBScript runtime (0x800A01A8)
Object required: 'execute'
/nyhedsbrev.asp, line 35

Linje 35 =  set rsTest = objConn.execute(sql)
Avatar billede ellebaek Nybegynder
07. november 2006 - 15:05 #4
nu er jeg med...

du har helt skrevet om i den...

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta name="" content="">
<title>Nyhedsbrev - tilmelding</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link REL="StyleSheet" HREF="style.css" type="text/css">
</head>
<body>

<%
Set rs = Server.CreateObject("ADODB.Connection")
str ="DRIVER={MySQL};SERVER=localhost;"_
&"DATABASE=kommuneanalyse_;UID=kommuneanalyse_;PWD=XXXXXX;"
rs.open str

if request.form("tilmeld") <> "" then
  'har brugeren trykket på tilmeld?

  navn = replace(request.form("navn"), "'", "")
  email = replace(request.form("email"), "'", "")

  sql = "SELECT * FROM nyhedsbrev WHERE navn = '"&navn&"' AND email = '"&email&"'"
  set rsTest = rs.execute(sql)
  'tjekker om brugeren allerede er tilmeldt.
  if not rsTest.eof then
    'brugeren er allerede tilmeldt.
    response.write "Du er allerede tilmeldt."
  else
    'brugeren er ikke tilmeldt, så gemmer hans oplysninger i databasen.
    sql = "INSERT INTO nyhedsbrev(navn, email) VALUES('"&navn&"','"&email&"')"
    rs.execute(sql)
    response.write "Du er nu tilmeldt nyhedsbrevet."
    end if
elseif request.form("afmeld") <> "" then
  'er der trykket på afmeld?
  navn = replace(request.form("navn"), "'", "''")
  email = replace(request.form("email"), "'", "")
  sql = "DELETE FROM nyhedsbrev WHERE navn = '"&navn&"' AND email = '"&email&"'"
  rs.execute(sql)
  response.write "Du er nu afmeldt nyhedsbrevet."
else
'der er ikke udfyldt noget i formen, og den vises derfor.
response.write "Der skete en fejl"
end if
%>
</body>
</html>

Jeg har følgende html-kode i min default.html:

<div class="leftmain">

<div class="overskrift2">Nyhedsbrev</div></p>
Vi udsender et nyhedsbrev hver måned. Du kan tilmelde dig her.
<form action="nyhedsbrev.asp" method="post">
<fieldset>
<div>
<label for="t1">Navn:</label><input type="text" name="navn" id="t1"></p>
<label for="t2">E-mail:</label><input type="text" name="email" id="t2"></p>
</div>
<div>
<label for="t3">Vælg:</label>
<input type="submit" value="Tilmeld" id="submit" name="tilmeld">&nbsp;
<input type="submit" value="Afmeld" id="submit" name="afmeld">
</div>
</fieldset>
</form>


sådan her skal det se ud...
Avatar billede thue Nybegynder
07. november 2006 - 15:16 #5
Mother fucking YESSIR.

GENIAAAAALT (og jeg fandt endda selv ud af, at min database hedder signups og ikke nyhedsbrev).

DU er en sand mester ellebaek: Kan du kort fortælle hvad du gjorde (hvad jeg gjorde galt).

Og send lige et svar - det giver sgu point det der, champ!
Avatar billede thue Nybegynder
07. november 2006 - 15:18 #6
Kan slet ikke takke dig nok. Det er vildt fedt, at det endelig virker.

For 1½ time siden havde jeg faktisk givet op...og nu virker det.

Fedest!
Avatar billede thue Nybegynder
07. november 2006 - 15:20 #7
Og databasen virker også.

Me sooooo happy.
Avatar billede ellebaek Nybegynder
07. november 2006 - 15:24 #8
hehe... ingen points til mig ellers tak... har allerede fået dem jeg skal have... smid et svar selv i stedet og accepter det...

<%
Dim objConn
Dim objRS
Set objRS = Server.CreateObject("ADODB.Recordset")
Set objConn = Server.CreateObject("ADODB.Connection")

objConn.ConnectionString="DRIVER={MySQL};SERVER=localhost;"_
&"DATABASE=kommuneanalyse_;UID=kommuneanalyse_;PWD=XXXXXX;"
objConn.Open

objRS.Open "SELECT * FROM signups", objConn, 3,3

objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing

du havde kopieret dette ind i toppen af din fil...

det det som sådan gør er:
laver en connection og et recordset.. sætter en streng til databasen, så connectionen ved hvor den skal åbne. herefter åbner du recordsettet ved hjælp af en connection og query ("select * from signups")... lige herefter lukker du dem igen...

Jeg rettede det til:
Set rs = Server.CreateObject("ADODB.Connection")
str ="DRIVER={MySQL};SERVER=localhost;"_
&"DATABASE=kommuneanalyse_;UID=kommuneanalyse_;PWD=XXXXXX;"
rs.open str


altså opretter en connection ved navn rs.
herefter definere jeg en connection string til databasen.
og åbner connectionen med
rs.open str

nu har jeg så adgang til databasen gennem connectionen, og kan derfor udføre de forespørgsler jeg laver på databasen...

:-)
Mvh. Jens
Avatar billede thue Nybegynder
08. november 2006 - 10:33 #9
Kære Jens.

Jeg vil nu blive glad om du ville tage imod point'ene. Du har faktisk svaret på tre forskellige og store spørgsmål.

1) Hvordan laver jeg formularen
2) Hvordan connecter og skriver jeg til sql-databasen
3) Tilretning af både formular og connection

Desuden har du forklaret mig hvad du rent faktisk har lavet.

Dine svar er virkelig meget værd for mig og jeg havde aldrig fået det lavet selv.

Så send venligst et svar...

Venligst
Thue
Avatar billede thue Nybegynder
07. marts 2007 - 15:04 #10
Hmmm - så må jeg jo lukke.
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