Avatar billede sapworld Nybegynder
03. september 2003 - 16:35 Der er 17 kommentarer og
1 løsning

Skal sende mail og skrive til database samtidigt

Jhar en formular der skal sende en mail og skrive til en access database.
Jeg kan ikke rigtig får det til at virker. Nu har jeg fundet ud af at skrive til databasen, men jeg modtager ikke en mail:

Side med Form:
<%@ Language=VBScript %>
<%
    Dim strqInitials, strqModule, strqSchedule, strqStatus, objMail, strqBody
     
    strqInitials = Trim(Request.Form("initials"))
    strqModule = Trim(Request.Form("module"))
    strqSchedule = Trim(Request.Form("schedule"))
    strqStatus = Trim(Request.Form("status"))

    'Hvis felterne er udfyldt, så gør et eller andet med data'ene....
      If strqUserInitials <> "" Then

        Set objMail = Server.CreateObject("CDONTS.NewMail")
        objMail.to = "kim@sapworld.dk"
        objMail.From = strqInitials + "@sapworld.dk"
        objMail.Subject = "Registration"
        strqBody = strqBody + "User Initials: " + strqInitials + vbNewLine
        strqBody = strqBody + "Module: " + strqModule + vbNewLine
        strqBody = strqBody + "Schedule: " + strqSchedule + vbNewLine
        strqBody = strqBody + "Status: " + strqStatus + vbNewLine
        objMail.Body = strqBody
        objMail.Send
       
        Set objMail = Nothing

        Response.Redirect "result.asp"    'Husk at oprette siden result.asp
    End If
%>

Selve form'en på siden:
<form action="display1.asp" method="post" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1">
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="62%" id="AutoNumber1">
  <tr>
    <td width="104%" colspan="2" bgcolor="#6699CC">
    <p align="center"><font color="#FFFFFF"><b><span lang="da">Report new tips
    or tricks</span></b></font></td>
  </tr>
  <tr>
    <td width="54%"><span lang="da">initials</span></td>
    <td width="50%">
    <!--webbot bot="Validation" b-value-required="TRUE" i-maximum-length="20" --><input type="text" name="initials" size="20" maxlength="20"></td>
  </tr>
  <tr>
    <td width="54%"><span lang="da">Module:</span></td>
    <td width="50%">
    <!--webbot bot="Validation" b-value-required="TRUE" i-maximum-length="80" --><input type="text" name="module" size="80" maxlength="80"></td>
  </tr>
  <tr>
    <td width="54%"><span lang="da">Schedule:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
    </span></td>
    <td width="50%"><input type="text" name="schedule" size="20"></td>
  </tr>
  <tr>
    <td width="54%"><span lang="da">Status:</span></td>
    <td width="50%"><input type="text" name="status" size="5" maxlength="5"></td>
  </tr>
  <tr>
    <td width="54%">&nbsp;</td>
    <td width="50%">&nbsp;</td>
  </tr>
  <tr>
    <td width="100%" colspan="2">
    <p align="center">
<input type="submit" value="Save"></td>
  </tr>
</table>
<p><br>
<span lang="da">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>
&nbsp;</span></p>
<p>&nbsp;</p>
</form>

Kode på siden result.asp:
<%
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open="hcb_scales_tutorial"
strSQL = "Insert into personer (subject, initials) values('" & request.Form("Course_Week") & "', '" & request.Form("Comments") & "')"
' strSQL = "Insert into personer (description) values('" & Request.Form("description") & "')"
'strSQL = "INSERT INTO PERSONER (tc) VALUES('Kim')"
objConn.Execute(strSQL)
objConn.Close
%>

Hisen

Kim
Avatar billede hossein Nybegynder
03. september 2003 - 18:48 #1
hvad er strqUserInitials? jeg kan ikke se hvor hentes dette eller defineres?
prøv at fjerne denne if sætning i første omgang for at se om du modtager mail eller ej men selvfølgelig udfylder du alle felterne inden du submitter:
If strqUserInitials <> "" Then
Avatar billede sapworld Nybegynder
03. september 2003 - 19:58 #2
Hej Hossein
Det skulle have været strqInitials, men der kommer ikke nogen mail alligevel. Heller ikke hvis jeg fjerner den.

Hilsen

Kim
Avatar billede hossein Nybegynder
03. september 2003 - 21:53 #3
Er du sikker på at du har installeret Microsoft SMTP Service. du kan tjekke den med regedit:
Hkey_local_machine-->Software-->Classes--> og led efter CDONTS.NewMail
hvis du kan ikke finde den så skal du insatllere den igen.

Du kan bare, hvis du ikke har gjort det, lave en simpel side bare for at tjekke om du kan sende eller det er en fejl i din kode f ex:

<html>
<body>
<%
    Set objMail = CreateObject ("CDONTS.Newmail")
    objMail.From = "XXXX@XXXX.XX"
    objMail.To = "XXXX@XXXX.XX"
    objMail.Subject = "Gode nyheder!"
    objMail.Body = "Det virker!"
    objMail.Send
    Set objMail = Nothing
%>
Nu blev din besked sendt!
</body>
</html>
Avatar billede sapworld Nybegynder
03. september 2003 - 22:14 #4
Det virker - mailen kom fint frem. Mon der er en fejl i form'en?

Kim
Avatar billede hossein Nybegynder
03. september 2003 - 22:20 #5
Din er:
objMail.To = "XXXX@XXXX.XX"
objMail.From = "XXXX@XXXX.XX"

byt den om. så kan vi se om ændre noget!
Avatar billede hossein Nybegynder
03. september 2003 - 22:22 #6
jeg mener:
objMail.From = strqInitials + "@sapworld.dk" 'Kim@sapworld.dk  ???
objMail.to = "kim@sapworld.dk"
Avatar billede hossein Nybegynder
03. september 2003 - 22:33 #7
hmmm det er også et mellemrum fjern dem:
                           
objMail.From = strqInitials + "@sapworld.dk"
                          ^ ^
Avatar billede sapworld Nybegynder
03. september 2003 - 22:54 #8
Hmm - hvilket mellemrum mener du?
Avatar billede hossein Nybegynder
03. september 2003 - 22:56 #9
Før og efter +
Avatar billede hossein Nybegynder
03. september 2003 - 23:22 #10
hvis du dele dem på to sider en side med form og en asp side som modtager formens værdier, sender mail og sender tilbage til result.asp så må vi se det går eller ej? jeg har lidt tvivl om method=post
Avatar billede sapworld Nybegynder
03. september 2003 - 23:37 #11
Jeg har en mistanke om at det ligger i form'en. Når jeg sender data til en database med Access bruger jeg denne i min form:
<form action="result.asp" method="post" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1">

Når jeg sender mails bruger jeg denne:
<form method="POST" action="--WEBBOT-SELF--" onsubmit="return FrontPage_Form1_Validator(this)" name="FrontPage_Form1">

Hvis jeg sætter den ind i stedet, så får jeg en mail, men fejl i det der sendes til databasen:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Field 'students.initials' cannot be a zero-length string.

/webhotel/hcb/sap/database/display1.asp, line 21

hmmm - har du en god idé?
Kim
Avatar billede hossein Nybegynder
03. september 2003 - 23:56 #12
>>Hvis jeg sætter den ind i stedet, så får jeg en mail, men fejl i det der sendes til databasen:
Du får den der:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

Så den felt i din db må acceptere Null, hvis brugeren er ikke nødt til at udfylde
Avatar billede hossein Nybegynder
04. september 2003 - 00:03 #13
jeg tror at når du submitter for at sende mail, parameterne postes til display1.asp og efter det du redirecter til result.asp derfor:
strSQL = "Insert into personer (subject, initials) values('" & request.Form("Course_Week") & "', '" & request.Form("Comments") & "')"

Request.form er tom og du får dette fejl meddelse fra db'en du skal sammetidig i samme side inserte til tabellen. dvs at flytte din sql sætning lig under din mail kode.
Avatar billede hossein Nybegynder
04. september 2003 - 00:08 #14
har du en tabel som hedder students og et feltnavn: initials hvor er de, i den kode jeg kan ikke se?
Avatar billede sapworld Nybegynder
04. september 2003 - 07:58 #15
Jeg har rettet til, så der postes og redirecter til display1.asp.

Kan man evt. sende informationen til mailen til display1.asp og derfra sende den vha. en form vha. en "agree" knap?

Kim
Avatar billede hossein Nybegynder
04. september 2003 - 09:04 #16
Alt kan lad sig gøre :-) så prøv. Du skal bare sørge for at ikke "Kill"e dine parameter fra formen.
Avatar billede sapworld Nybegynder
04. september 2003 - 11:13 #17
ok - vi kom tættere på målet - vil du have point'ene?

Kim
Avatar billede hossein Nybegynder
04. september 2003 - 11:40 #18
Ja tak
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