Classic ASP – How To’s
How to make a database connection to MySQL in ASP
Note: The same basic idea should work for other database types. The sConnection value would need to be changed.
<html>
<head>
<title>ASP - MySQL Connection</title>
</head>
<body>
<center><p><strong>ASP - MySQL Connection</strong></p>
<p>
<%
Dim sConnection, objConn , objRS
sConnection = "DRIVER={MySQL ODBC 3.51 Driver}; SERVER={Enter MySQL server name here}; DATABASE={Enter database name here}; UID={Enter database username here};PASSWORD={Enter database password here}; OPTION=3"
Set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open(sConnection)
Set objRS = objConn.Execute("SELECT lastname, firstname FROM test ORDER By lastname")
While Not objRS.EOF
Response.Write objRS.Fields("firstname") & " " &
objRS.Fields("lastname") & "<br>"
objRS.MoveNext
Wend
objRS.Close
Set objRS = Nothing
objConn.Close
Set objConn = Nothing
%>
</p>
</center>
</body>
</html>
How to create an email web form in ASP
First, we need to create the form. We’ll call this file “feedback.html”.
<html>
<head>
<title>Feedback Form</title>
</head>
<body>
<!-- Form Section -->
<!-- Email addresses should never be passed from the from section,
instead pass a variable that can be translated to an email address
in the Post Section. -->
<h1>Contact Us</h1>
<form action="process_feedback.asp" method="post">
<p>Your Name: <input type="text" name="name" /></p>
<p>Your Email: <input type="text" name="email" /></p>
<p>Comments: <textarea name="comments"></textarea></p>
<p><input type="submit" value="Send Email"></p>
</form>
</body>
</html>
Then we need to create the script to process the form. We’ll call this file process_feedback.asp. This name must match the form’s action attribute.
<% @language=VBScript %>
<%
'Set HTMLFormatted to 1 for HTML email and 0 for plain text
HTMLFormatted = 1
'Dimension variables
Dim myMail
'Get a Message object
Set myMail = CreateObject("CDO.Message")
'Configure the message object for the remote server
'Send using (remote) server and port
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of remote SMTP server
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.purdue.edu"
'Server port
myMail.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'Connection timeout
myMail.Configuration.Fields _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
'Update the configuration
myMail.Configuration.Fields.Update
'Setup the From, To, Subject, and Body of the message
myMail.Subject = "Feedback"
myMail.From = "<" & request.form("email") & "> " & request.form("name")
myMail.To = "sample@purdue.edu"
myMail.ReplyTo = request.form("email")
Dim Body
if HTMLFormatted = 1 then
Body = "<h1>Message from " & request.form("name") _
& " (" & request.form("email") & ")</h1>"
Body = Body & "<b>Comments:</b><br />" & request.form("comments")
myMail.HTMLBody = Body
else
Body = "Message from " & request.form("name") _
& " (" & request.form("email") & ")" & vbNewline
Body = Body & "Comments:" & vbNewline & request.form("comments")
myMail.TextBody = Body
end if
'Now send the message
myMail.Send
'Finally, free the Message object
Set myMail = nothing
%>
<html>
<head>
<title>Thank You!</title>
</head>
<body>
<!-- Reply to the user -->
<h1>Thank You!</h1>
<p>Your comments have been submitted.<br />
Thank you for your input.</p>
</body>
</html>
Note: Email addresses should never be passed from the Form Section. If recipient email addresses vary, pass a variable that can be translated to an email address in the Post Section.
Why not put the email address in the Form Section?
Email addresses should never be passed from the Form Section. If recipient email addresses vary, pass a variable that can be translated to an email address in the Post Section. Spammers use robots to find email addresses in HTML code. Keeping email addresses out of the Form Section will make it harder for spammers to find your email address. Also, allowing an email address to be passed directly to the Post Section allows less scrupulous visitors to use your form to send email for unintended uses.
The POST Request
When you click on that submit button, what happens? The browser sends all the form fields to the server using a POST request. A POST simply means that all the submitted fields are sent in the body of the request. In a GET request, the submitted fields are appended to the URL e.g. process_feedback.asp?name=Jason. The POST method is preferable here because the comments field might exceed the browser’s URL length limit if a GET request was used.
Using POST, the field names and values are sent to the server in the body of the request. When the ASP script handles the request, it puts these values into the request object in the form array with the field names as the keys. The value of the name field, for example, could then be accessed using request.form('name').
Sending the Email
First we create the myMail object (variable) as an instance of the class CDO.Message. We then set the values needed to allow that object to connect to the remote mail server and set various header fields in the email. A Body variable containing the body of the message is built and attached to the object and we call the myMail.send() method to send the actual email.