Everybody uses online forms these days, whether to get user feedback or to get
orders. They present your visitors with a means to convey their message to you.
Most of the webmasters prefer using CGI scripts for processing and emailing form
inputs. Such scripts are copiously available, mostly free, at various free-scripts
resources on the Net. Most of CGI happens in Perl, so you gotta be in friendly terms
with the scripting language in order to fine tune the form-handling script according
to your own, special needs.
A better alternative is, using either ASP or PHP. Both scripting languages are
easy to use and require less coding. In Perl, if you write a routine in 50 lines,
the same routine can be written, in say, 10 lines in ASP.
In this article I'm going to tell you how to write an HTML-form handling script
in ASP. This script does two things - it emails you the details entered by the visitor,
and then it displays a thank you page. It also checks if the user has left a relevant
field, here, email, blank.
There are basically two email handling objects used by the servers supporting
the ASP capability, viz., CDONTS and SMTP. We'll see how both work.
First, let us make an HTML page that contains our form (note that every HTML
tag is preceded by a dot so that some of the email clients don't throw up a tantrum
- you'll have to remove them before implementing the code):
"form.html"
. . .
. .
And now we write the ASP file that handles the required script to process the
above form. Remarks are inserted using ' .
"emailform.asp"
.<% @Language = VBScript %> .<% Option Explicit %> .<% Response.Buffer = True %>
' You'll need the above command in case you want to show a "Thank you" page,
as you'll need to "re-direct" to "thankyou.html".
. . . .
.
.<% Dim nName, eEmail, AllOk, bText, Mailer AllOk = True
' We use AllOk to see whether it is Ok to proceed further or not. If AllOk contains "False," we do not proceed. The use of AllOk here may seem needless here, but if there are many fields, it comes handy.
nName = Trim(Request.Form("name"))
eEmail = Trim(Request.Form("email))
If Len(eEmail) = 0 then Response.Write "You cannot submit details without submitting your email. Please press the BACK button of your browser and try again."
AllOk = False
End If
If AllOk = True then
bText = "The visitor to the web site has entered the following details:" & Chr(13) & Chr(10) & Chr(13) & Chr(10)
' We use the combination of Chr(13) and Chr(10) to insert the line breaks.
bText = bText & "Visitor's Name: " & nName & Chr(13) & Chr(10) bText = bText & "Visitor's Email: " & eEmail
' This section uses SMTP ' Sending the email to the webmaster.
Set Mailer = Server.CreateObject("SMTPsvg.Mailer) Mailer.FromAddress = eEmail Mailer.FromName = nName Mailer.AddRecipient "Webmaster", "webmaster@yourdomain.com" Mailer.RemoteHost = "mail.yourdomain.com" Mailer.Subject = "Form submitted at your web site!" Mailer.BodyText = bText
If Mailer.SendMail then Response.Redirect "thankyou.html" Else Response.Redirect "error.html" End If
Set Mailer = nothing
' This section uses CDONTS ' Sending the email to the webmaster.
Set Mailer = Server.CreateObject("CDONTS.NewMail") Mailer.From = eEmail Mailer.To = "webmaster@yourdomain.com" Mailer.Subject = Form submitted at your web site!" Mailer.Body = bText
If Mailer.Send then Response.Redirect "thankyou.html" Else Response.Redirect "error.html" End If
Set Mailer = nothing
End If
.%>
I have demonstrated both CDONTS and SMTP, but you have to use only one. You'll
have to ask your web host what to use.
As usual, if you have a doubt, you can write to me at amrit@bytesworth.com.
All the best.