Toon posts:

CDONTS Database

Pagina: 1
Acties:

Verwijderd

Topicstarter
Voorwoord: search op cdonts+database geen resultaten search op cdonts geen resultaten waar ik wat mee kon beginnen :)

Ik ben bezig een mailscriptje aan te passen dat ik al vaker heb gebruikt. Helaas ben ik niet iemand die even een script schrijft en de tijd die ik nodig heb om aanpassingen door te voeren en te testen heb ik er graag voor over maar nu hik ik hier al de hele avond tegenaan.

Het is in principe een basic scriptje dat normaal gesproken gebruikt wordt om vanuit een form een mail te versturen naar een bepaald adres dat vast in het script komt te staan of in het formuliertje wordt aangegeven.

Nu ben ik vrij dwars en wil ik graag dat het e-mail adres uit een database wordt opgevraagd, hiervoor had ik de volgende oplossing bedacht:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../../Connections/cnWish.asp" -->
<%
Dim rsAdverteerder_adres
rsAdverteerder_adres = "1"
If (Request.QueryString("advert") <> "") Then 
  rsAdverteerder_adres = Request.QueryString("advert")
End If
%>
<%
Dim rsAdverteerder
Dim rsAdverteerder_numRows

Set rsAdverteerder = Server.CreateObject("ADODB.Recordset")
rsAdverteerder.ActiveConnection = MM_cnWish_STRING
rsAdverteerder.Source = "SELECT * FROM TblCms WHERE Id = " + 
Replace (rsAdverteerder_adres, "'", "''") + ""
rsAdverteerder.CursorType = 0
rsAdverteerder.CursorLocation = 2
rsAdverteerder.LockType = 1
rsAdverteerder.Open()

rsAdverteerder_numRows = 0
%>
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<%
on error resume next
Set Mailer = Server.CreateObject("CDONTS.NewMail")

if request("from") = "" then
  MailFrom = "Claudia"
else
  MailFrom = request("from")
end if

if request("to") = "" then
  MailTo = rsAdverteerder.Fields.Item("Email").Value
else
  MailTo = rsAdverteerder.Fields.Item("Email").Value
end if

if request("_subject") = "" then
  Subject = "Reactie"
else
  Subject = request("_subject")
end if

Mailer.From = MailFrom
Mailer.To = MailTo
Mailer.Subject = Subject

for each whatever in request.querystring
  Message = Message & whatever & "=" & vbcrlf
  Message = Message & request.querystring(whatever) & vbcrlf & vbcrlf
next

for each whatever in request.form
  Message = Message & whatever & "=" & vbcrlf
  Message = Message & request.form(whatever) & vbcrlf & vbcrlf
next

Mailer.Body = Message
Mailer.Send
Set Mailer = nothing

%>
</body>
</html>
<%
rsAdverteerder.Close()
Set rsAdverteerder = Nothing
response.redirect "succes.asp"
%>


Het probleem zit hem dus in het opvragen van de gegevens (het e-mail adres) uit de database, ik ben al bezig geweest met Cstr() Response.Write() en nog een paar "oplossingen" maar helaas. Kan iemand mij in de juiste richting sturen voor een goede oplossing? O-)

[ Voor 24% gewijzigd door Verwijderd op 18-12-2002 23:45 . Reden: Hij was te breed... ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:14

gorgi_19

Kruimeltjes zijn weer op :9

ASP:
1
on error resume next

Knikker deze er eventjes tussen uit (rampzalig voor debuggen.. :P )

Zou je ook een foutmelding en regelnummer (tezamen met de 'foute' code) kunnen geven? En wat werkt er niet precies?

[ Voor 12% gewijzigd door gorgi_19 op 19-12-2002 00:14 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
En ik maar zoeken waarom ik gewoon naar succes.asp werd gestuurd ;-)

De foutmelding:

ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/firstzone/mail.asp, line 42

En dat is de regel waar voor het eerst het adres wordt opgevraagd:
MailTo = rsAdverteerder.Fields.Item("Email").Value

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 16:14

gorgi_19

Kruimeltjes zijn weer op :9

De oorzaak is dat je recordset leeg is. Je wilt wat uitlezen uit een lege recordset, dus geeft hij een foutmelding.

Nu de oorzaak nog...
1. Je query geeft geen resultaat terug
(query is fout, controleren door:
ASP:
1
2
Response.Write "SELECT * FROM TblCms WHERE Id = " + 
Replace (rsAdverteerder_adres, "'", "''") + ""

Te doen en te kijken of deze geldig / c.q. goed is en resultaten teruggeeft.
2. Je vult je recordset niet goed.
In deze methodiek (die jij hanteert) van een recordset maken ben ik niet zo thuis.... Ik zal ff kijken of ik nog wat info kan vinden.

Je weet nu in ieder geval waar de fout kan zitten.. :)

[ Voor 8% gewijzigd door gorgi_19 op 19-12-2002 00:25 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Ik heb hem... na de foutmelding ben ik zelf ook even gaan zoeken... heel slim had ik de identifier verstuur vanuit het form -> post en geprobeerd het uit de url uit te lezen!

Duhhh volgens mij is het laat op de avond, bedankt voor het meedenken en de hulp!