03. september 2003 - 16:35Der 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
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 %>
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
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>
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
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.
>>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
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.
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.