Avatar billede ronniw Nybegynder
23. november 2003 - 20:16 Der er 5 kommentarer og
1 løsning

Indsæt brugeres e-mail fra databasen udfor "objCDO.To"

Hejsa -

jeg har et problem, jeg ikke kan forstå kommer?? Jeg har brugt rigtig lang tid på det nu (og mit problem er sikkert dumt og let....)

Jeg har et besked-system på min hjemmeside for de brugere der er oprettet i min database. Men systemet skal også sende en mail til modtageren af beskeden's email-adresse - hvor adressen er hentet fra databasen, hvilket jeg ikke kan få det til.

Jeg forstår ikke, hvorfor den kommer med error:
"Type mismatch - line 79"

Linie 79 er:
objCDO.To = rsUser("email")


Er der nogen, der kan hjælpe mig??



Jeg lægger 90 points. (sig til, om der skal mere til).

Venlig hilsen,
ronni.


Min fil ser sådan ud...

<%
Option Explicit
Dim sql, rsMessage, rsUser, username, sentfrom, sendto, subject, message, notfilled(2), badflag, count, topic, recordnum, objCDO

username = Session("username")

if username = "" then
  Response.Redirect("nologin.asp?page=messagecompose.asp")
end if
%>

<html>
<head>
<title>Send Besked</title>
<link rel="stylesheet" type="text/css" href="main.css">
<div align="center">
</head>
<body>
<font face="arial,helvetica" size=2>

<%
'Assign form values to variables
sentfrom = Session("username")
sendto = Request.Form("sendto")
subject = Request.Form("subject")
message = Request.Form("message")
topic = Request.Form("topic")
recordnum = Request.Form("recordnum")

'Tjek, om alle felter er fyldt i. Badflags afgør om der er et problem
badflag = 0

if sendto = "" then
    notfilled(0) = "Til"
    badflag = 1
end if
if subject = "" then
    notfilled(1) = "Emne"
    badflag = 1
end if
if message = "" then
    notfilled(2) = "Besked"
    badflag = 1
end if

if badflag = 1 then
    senderror()
end if

'Åben forbindelsen og indsæt beskeden til brugeren
%>
<!--#include file="conn.asp"-->
<%
'Vælg den bruger, som besked sendes til og hent BRUGERNAVN og EMAIL herfra
sql = "SELECT username, email FROM Users WHERE username = '" & sendto & "'"
Set rsUser = Server.CreateObject("ADODB.Recordset")
rsUser.Open sql, conn, 3, 3

if rsUser.EOF then
    nouser()
end if
rsUser.close
set rsUser = nothing

Set rsMessage = Server.CreateObject("ADODB.Recordset")
rsMessage.open "Messages", conn, 3, 3
rsMessage.AddNew
rsMessage("sentfrom") = sentfrom
rsMessage("sendto") = sendto
rsMessage("subject") = subject
rsMessage("message") = message
rsMessage.Update
rsMessage.close
set rsMessage = nothing

'send en email til modtagerens e-mail
Set objCDO = Server.CreateObject("CDONTS.NewMail")
objCDO.From = "DKLnet.dk <dont-reply@DKLnet.dk>"
objCDO.To = rsUser("email")
objCDO.Subject = "Du har modtaget en besked på DKLnet.dk!"
objCDO.Body = "En bruger har anbefalet følgende link:"
objCDO.Send
Set objCDO = Nothing
%>

<p><b>Din besked til <i><%=sendto%></i> er blevet sendt.</b></p>

<p align="center"><%if topic <> "" then%><a href="philboard_read.asp?id=<%=topic%>&recordnum=<%=recordnum%>">back to topic</a><%else%><a href="inbox.asp">tilbage til indbakke</a> | <a href="userview.asp">tilbage til profil liste</a><%end if%> | <a href="index.asp">tilbage til startsiden</a></p>

</font>
</body>
</html>

<%Function senderror()%>

<p><b>Du har ikke udfyldt nedenstående felter rigtigt:</b></p>

<%for count = 0 to 2%>
    <%if notfilled(count) <> "" then%>
    <b><%=notfilled(count)%></b><br>
    <%end if%>
<%next%>

<p><a href="java script:self.history.go(-1)">Forsøg venligst igen</a></p>

</font>
</body>
</html>
<%Response.end
End Function%>

<%Function nouser()%>

<p><b>Profilen &quot;<%=sendto%>&quot; eksisterer ikke.</b></p>

<p><a href="java script:self.history.go(-1)">Forsøg venligst igen</a></p>

</font>
</body>
</html>
<%Response.end
End Function%>

<%
conn.close
set conn = nothing
%>
Avatar billede thesurfer Nybegynder
23. november 2003 - 20:45 #1
Vis os lige indholdet af conn.asp, men husk at fjerne database filnavnet, og evt passwords.

"Show me the code!" :)
Avatar billede ronniw Nybegynder
23. november 2003 - 20:52 #2
conn.asp, værs'go:

<%
Dim ConnectString, conn

ConnectString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("********.mdb")
Set conn = Server.CreateObject("ADODB.Connection")
conn.open ConnectString
%>
Avatar billede thesurfer Nybegynder
23. november 2003 - 22:03 #3
Du lukker jo rsUser her:
if rsUser.EOF then
    nouser()
end if
rsUser.close  <--
set rsUser = nothing <--

de 2 linier skal vist flyttes ind i if-sætningen.
Avatar billede ronniw Nybegynder
23. november 2003 - 23:17 #4
hov, ja for pokker....

- det var dét jeg sagde... 'dumt og let'.... Men det er alle 90 points værd!

Tak skal du have - send mig lige et svar så du kan få dine points!
Avatar billede thesurfer Nybegynder
23. november 2003 - 23:26 #5
Et svar er sendt :)
Avatar billede ronniw Nybegynder
24. november 2003 - 10:13 #6
tak for hjælpen - og værs'go!
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
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

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