Sending form results to database and email

T

Travis

I have set up a form that I want to send to both email and to a
database. In this case, I used a sample northwind database to test this
because I could not get it to work with my database. I followed the
white paper from MS's website on doing this but if I do it exactly as
they explain it, I get the following error:
Microsoft VBScript runtime error '800a000d'

Type mismatch: 'ParseBody'

/email.asp, line 17

when I submit it. I am including the code that the paper says to paste
into the page for review.
It appears to be coming from the parsebody function, but if I comment it
out, it doesn't show the error, but it also doesn't send to either the
database or email, despite showing a confirmation page.
Thanks for any help.

<html>

<head>

<%

'========================================================
' When you press ENTER in a text box, a carriage return
' is created. A carriage return is represented by a
' Chr(13). Because this information will be displayed
' as HTML, replace the carriage returns with
' the <br> tag.
'========================================================
Function ParseBody(strText)
'=================================================
' This function replaces the Chr(13) with a <br>
' tag in whatever string is passed to it.
'=================================================
strText = Replace(strText, Chr(13), "<br>")
ParseBody = strText
End Function


'========================================================
' Send results to the database.
' This portion of the page sends the information
' from the form to the Northwind sample database.
'========================================================

'========================================================
' Variable declaration:
' myConnString = Connection string to database.
' myConnection = The database connection object.
' mySQL = The query string to be used.
'========================================================
Dim myConnString
Dim myConnection
Dim mySQL

'========================================================
' Set up connection string. When you created the
' database connection in FrontPage called "Sample",
' FrontPage created an Application variable in the
' Global.asa file called "Sample_ConnectionString".
'
' Use that connection string by populating the
' myConnString variable with the value contained
' in the Application variable.
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' You can modify this to work with your database by
' changing "Sample_ConnectionString" to reflect your
' FrontPage database connection. For example, if you
' defined your connection in FrontPage as "Database1",
' you would change the following line to this:
' myConnString = Application("Database1_ConnectionString")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
myConnString = Application("Sample_ConnectionString")


'========================================================
' When you are using custom ASP to set up a connection to
' a database, you use a Connection to connect to the
' database. The following line creates that connection and
' assigns the myConnection variable to contain the
' Connection object.
'========================================================
Set myConnection = Server.CreateObject("ADODB.Connection")

'========================================================
' After the connection has been created, open it so that
' information can be written to the database. To do
' that, use the Open method and pass it the connection
' string that you defined earlier.
'========================================================
myConnection.Open myConnString

'========================================================
' This is the SQL string that queries the database.
' In this example, Request.Form("[form_field]")
' pulls information from the form and populates the SQL
' string with it.
'
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' You can modify this SQL string to work with your own
' database by following this format. Pay special
' attention to the fact that spaces are not optional.
' -------------------------------------------------------
' mySQL = "INSERT INTO [your_table_name] "
' mySQL = mySQL & "([database_field_names]) "
' mySQL = mySQL & "VALUES ('[form_field_names]')"
' -------------------------------------------------------
' For more information about this, see the
' Customizing the Database Page section of this document..
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
mySQL= "INSERT INTO Employees "
mySQL= mySQL & "(FirstName,LastName,Address,City,Region,PostalCode) "
mySQL= mySQL & "VALUES ('" & Request.Form("FirstName") & "','"
mySQL= mySQL & Request.Form("LastName") & "'"
mySQL= mySQL & ",'" & Request.Form("Address") & "'"
mySQL= mySQL & ",'" & Request.Form("City") & "','"
mySQL= mySQL & Request.Form("Region") & "','"
mySQL= mySQL & Request.Form("PostalCode") & "')"

'========================================================
' Execute the connection with the SQL string.
' This runs the SQL string against the database and inputs
' the information.
'=========================================================
myConnection.Execute mySQL

'=== Close the connection.
myConnection.Close

'=== Set the connection equal to Nothing.
'=== This frees resources used by it.
Set myConnection = Nothing




'===================================================================
' Send the results to e-mail.
' Use CDONTS to create and send a message based on information
' entered into the form. The following lines compose and send
' the e-mail.
'===================================================================

'====================================================================
' Set up variables:
' myCDONTSMail = A CDONTS mail object.
' strFrom = A string containing the source e-mail address.
' strTo = A string containing the destination e-mail address.
' strSubject = A string containing the subject of the e-mail.
' strBody = A string containing the body of the e-mail.
'====================================================================
Dim myCDONTSMail
Dim strFrom
Dim strTo
Dim strSubject
Dim strBody

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Assign the source e-mail address. Change this to your e-mail
' address.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strFrom="(e-mail address removed)"

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Assign the destination e-mail address. In this example, get the
' e-mail address from the form field called "EMail".
' You can customize this by removing the EMail form field and
' changing the following line to this:
' strTo="(e-mail address removed)"  Change this to your e-mail
' address.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strTo=Request.Form("EMail")

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' The following line is the subject of the e-mail. You can change
' this to a subject that is customized to your liking.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strSubject = "Send to E-mail and Database"

'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' The following lines create the body of the message. This can be
' anything you want it to be.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
strBody="The following information was submitted:" & Chr(13)
strBody = strBody & Request.Form("FirstName") & " "
strBody = strBody & Request.Form("LastName")
strBody = strBody & Chr(13) & Request.Form("Address") & Chr(13)
strBody = strBody & Request.Form("City") & Chr(13)
strBody = strBody & Request.Form("Region") & Chr(13)
strBody = strBody & Request.Form("PostalCode") & Chr(13)
strBody = strBody & Chr(13) & "Thank you for submitting your data."

'====================================================================
' The SET statement creates the CDONTS mail object in preparation
' for sending the e-mail message.
'====================================================================
Set myCDONTSMail = CreateObject("CDONTS.NewMail")

'====================================================================
' The following line sends the mail message using the source e-mail,
' destination e-mail, subject, and body that were defined earlier.
'====================================================================
myCDONTSMail.Send strFrom,strTo,strSubject,strBody

'=== Set the CDONTS mail object to NOTHING to free resources.
Set myCDONTSMail = Nothing


'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' For information about how to customize the rest of this page, see the
' Customizing the Confirmation Page section of this document. Sections
‘ that are discussed in the Customizations section are delimited
' by percent signs.
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%>

</head>

<body bgcolor="#FFCC99">

<p><font face="Verdana" color="#FF0000"><b>Thank you for submitting your
information!<br>
</b></font><font face="Verdana" size="2">You will receive an e-mail
shortly.&nbsp; The e-mail was sent using the following
information:</font></p>
<b><b><font face="Verdana" size="2">Sent To:
<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Response.Write Request.Form("EMail")
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%><br>
From&nbsp;&nbsp;&nbsp; : Microsoft PSS Sample Page</font></b></p>
<p><b><font face="Verdana" size="2">Subject: Send to Database and
E-mail</font></b></p>
<p><b><font face="Verdana" size="2">Content:
<% '%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
' Call the ParseBody function and pass the strBody string to it.
' This will replace the Chr(13) characters with <br> tags in the HTML.
Response.Write(ParseBody(strBody))
'%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%>
</font></b></p>
<hr noshade size="1" style="color: #000000">
<p>&nbsp;</p>

</body>

</html>
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top