PDA

View Full Version : Dreamweaver Form w/ Spry Fields & Spam


relin
03-30-2009, 04:20 PM
I have created a form/ contact page with spry text fields,etc. and I am getting a lot of spam. I don't know how to control it anymore. I have set amount of characters in fields, specified text or numbers, etc. Spammers are getting past all of my "restrictions." I even put a box that the guest would have to type a specific word in the box, but Dreamweaver doesn't check it. Any suggestions? I am using .asp. This is my page, http://www.waterfowloutfittersunlimited.com/guest.htm

The cdosys.asp page is coded as follows:

<%
For Field = 1 to Request.Form.Count - 3
FieldName = Replace(Request.Form.Key(Field),"_"," ")
FieldValue = Request.Form.Item(Field)
Body = Body & FieldName & ": " & FieldValue & VbCrLf
Next
'Dimension variables
Dim objCDOSYSCon
'Create the e-mail server object
Set objCDOSYSMail = Server.CreateObject("CDO.Message")
Set objCDOSYSCon = Server.CreateObject ("CDO.Configuration")
'Set and update fields properties
With objCDOSYSCon
'Outgoing SMTP server
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver")="relay-hosting.secureserver.net"

.Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'CDO Port
.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Timeout
.Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60

.Fields.Update
End With
'Update the CDOSYS Configuration
Set objCDOSYSMail.Configuration = objCDOSYSCon
'Set and update email properties
With objCDOSYSMail
'0=Low, 1=Normal, 2=High
.Fields("urn:schemas:httpmail:importance").Value = 1
'Who the e-mail is from
.From = Request.Form("email")
'Who the e-mail is sent to
.To = "XXXXXXXXXX@XXXXX.XXX"
'Who the e-mail is CC'd to
'.Cc = ""
'The subject of the e-mail
.Subject = Request.Form("email_subject")
'Set the e-mail body format (HTMLBody=HTML TextBody=Plain)
.TextBody = Body
.Fields.Update
'Send the e-mail
.Send
End With
'Close the server mail object
Set objCDOSYSMail = Nothing
Set objCDOSYSCon = Nothing
'Rederect after sending email
Response.Redirect Request.Form("redirect_to")
%>


Spammers are filling in the address line with urls, etc.

Your help is greatly appreciated! Thanks.

brazenskies
03-30-2009, 05:07 PM
I even put a box that the guest would have to type a specific word in the box, but Dreamweaver doesn't check it.

Have you put any code anywhere to validate this box?

This code is showing no asp validation so I assume you have some javascript validation on your form? Post up the code for the form using code tags...[*code][*/code] (Minus *)

Spudhead
03-30-2009, 06:16 PM
Ok... first off, your captcha. I refreshed your page a few times and it stayed on an image of the words "no-spam", usefully named "No-Spam.jpg". Does this change at all? Because otherwise it's going to stop them for as long as it takes them to notice their automatic spam tool has stopped working on your page, visit the page, and copy the text. A captcha is supposed to be unique for every single visit.

There are a few other things.

Your cdosys.asp page doesn't check what page sent it the information - it's very likely that spammers are posting data straight to it, and it's blindly accepting it. So the first step is to check your HTTP_REFERER server variable to make sure it's the form you're expecting. That will slow them down for a few days, and then they'll start spoofing the referer.

So now you need to build the wall a little higher. You should be logging the IP address of senders - you can add those to a blacklist and not accept submissions from them. Trouble is, spammers tend to use vast arrays of IP addresses, and you're unlikely to block them all. You probably will block some genuine users in the process, though. It's a useful tool, however, if you've got some persistent and not-too-technically-bright offenders.

Another useful tool enhances the initial form security. Generate a nice long random number on your form page. Store it in a session variable, and write it to a hidden field in the form. On your submission page, check that the value sent to it matches the one in the session variable. If it does, you can send the email and wipe the number from the session. That will make sure that anyone who wants to use your mailing script has to come through your contact form.

That said... spam is pretty ubiquitous. You can secure, and validate, all you like, and someone will still manage to send you a once-in-a-lifetime deal on some little blue pills of indistinct origin and purpose. The main aim is not to run faster than the spammers, but to run faster than everybody else. Once your form is too much hassle to spam, they'll go find someone else.

relin
03-30-2009, 07:36 PM
I am not a coder by trade, so some of this is completely foreign to me - thus asking for assistance.... One day I will get it... I have always just had the No Spam jpg there and it worked in the past when I used Front Page. Actually, never had a problem with the Front Page form, just Dreamweaver.

This is the only code I have including the asp page I have already posted.

!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0053)http://www.waterfowloutfittersunlimited.com/guest.htm -->
<HTML xmlns="http://www.w3.org/1999/xhtml"><HEAD><TITLE>Guest Book - Tim
Kelley's Waterfowl Outfitters Unlimited &amp; The Eagle Lake Lodge</TITLE>
<meta name="keywords" content="Texas Duck and Goose Hunting,Goose Hunting,Duck Hunting,Tim Kelley's Waterfowl Outfitters Unlimited,Waterfowl Outfitters Unlimited,Texas Waterfowl Hunting, Goose Hunt Texas, Texas Goose Hunt, Waterfowl Hunting Texas, Texas Waterfowl Outfitters, Waterfowl Outfitters, The Eagle Lake Lodge,Eagle Lake Lodge,Tim Kelley's Eagle Lake Lodge,Tim Kelly, Tim Kelly's Waterfowl Outfitters Unlimited, waterfowloutfttersunlimited.com,Texas Waterfowl Hunting,texaswaterfowloutfitters, Waterfowl,Waterfowl Hunting,Lodging,Hunting Lodge,Texas Hunting Lodge,Eagle Lake Lodge,Eagle Lake Lodging,goose,geese,duck,snow geese,teal,teal hunting,Eagle Lake,Houston,Katy,Garwood,El Campo,hunting guides,professional guides,guided hunt,guided waterfowl hunts,guided hunts,hunting outfitters,sandhill crane,sandhill crane hunts,pheasant,pheasant hunt,pheasant hunts,guided goose hunt,guided goose hunts,guided snow goose hunt,guided snow goose hunts,corporate hunts,retreats,company hunts,executive hunts,weddings,corporate lodging,outdoor,goose,duck,snow geese,snow goose,pintail,chuckar,hog,hog hunt,skeet,skeet shooting,catered,cooking,Texas,Texas Goose Hunting,Eagle Lake Texas Goose Hunting,Texas Duck and Goose Hunting,Eagle Lake Goose and Duck Hunting,Texas Goose and Duck Hunting,Lodging,Hunting Lodge, Birdwatching,Birding,Birdwatching Lodge,Birding Lodge, Tim Kelley,Waterfowl,Waterfowl Outfitters Unlimited,Tim Kelley's Waterfowl Outfitters Unlimited,Waterfowl Hunting,Hunting,Texas Hunting,lease,pond lease,season lease,pond,prairie,rice field,stubble,parkas,white parkas,hunting equipment,hunting business,FM 102,Edna,Victoria,Columbus,I-10,Highway 59, Struss Suppky,AJ Struss Supply,A J Struss Supply,A. J. Struss Supply,Johnny's Sport Shop,Johnny's,hunting equipment,licenses,hunting license,guns,camoflauge,decoy,Texas Waterfowl Hunting, Goose Hunting Capital of the World, waterfowl@elc.net, waterfowlou@sbcglobal.net" />
<meta name="description" CONTENT="Waterfowl Outfitters Unlimited is located in Eagle Lake, Texas, known as the Goose Hunting Capital of the World. Waterfowl Outfitters Unlimited offers goose hunting consisting of snow geese, blue geese, specklebellies, and canadas. Duck hunting is also available." />
<style type="text/css">
<!--
body,td,th {
font-family: Geneva, Arial, Helvetica, sans-serif;
font-size: 14px;
color: #817056;
}
body {
background-color: #D0CCBB;
}
a {
font-size: 14px;
color: #817056;
font-family: Geneva, Arial, Helvetica, sans-serif;
}
a:visited {
color: #817056;
text-decoration: none;
}
a:hover {
color: #9d9d8a;
text-decoration: none;
}
a:active {
color: #817056;
text-decoration: none;
}
a:link {
color: #817056;
text-decoration: none;
}
.style26 {font-size: 14px}
.style49 {color: #D0CCBB}
.style64 {font-size: 12}
.style78 {font-size: 18px}
-->
</style>

<script src="SpryAssets/SpryValidationTextField.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationSelect.js" type="text/javascript"></script>
<script src="SpryAssets/SpryValidationTextarea.js" type="text/javascript"></script>
<script type="text/JavaScript">
<!--
function MM_preloadImages() { //v3.0
var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
//-->
</script>
<script type="text/javascript">
<!--
function MM_reloadPage(init) { //reloads the window if Nav4 resized
if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}
MM_reloadPage(true);
function MM_setTextOfTextfield(objId,x,newText) { //v9.0
with (document){ if (getElementById){
var obj = getElementById(objId);} if (obj) obj.value = newText;
}
}
//-->
</script>
<link rel="shortcut icon" href="favicon.ico" >
<link href="SpryAssets/SpryValidationTextField.css" rel="stylesheet" type="text/css">
<link href="SpryAssets/SpryValidationSelect.css" rel="stylesheet" type="text/css">
<link href="SpryAssets/SpryValidationTextarea.css" rel="stylesheet" type="text/css">
<style type="text/css">
<!--
.style81 {font-size: 9px}
.style83 {font-size: 10}
-->
</style>
</head>
<body bgcolor="#FFFFFF">
<script Language="JavaScript">
// Scrolling text string.
var strText="BOOK YOUR 2009 - 2010 HUNTS & LODGING NOW! 888-TX-LODGE";
// Length of the text
var intText=strText.length;
// Speed of the scroll
var intSpeed=100;
// Width of the scrolling area.
var intWidth=100;
var intPos=1-intWidth;
function scroll()
{
// Initialize the string to be printed.
intPos++;
var strScroll="";
// Move to the right in the string.
if (intPos==intText)
{
// Start over if the string is done.
intPos=1-intWidth;
}
// Scrolling
if (intPos<0)
{
// Add spaces to beginning if necessary.
for (var i=1; i<=Math.abs(intPos); i++)
{
strScroll=strScroll+" ";
}
strScroll=strScroll+strText.substring(0, intWidth-i+1);
}
else
{
strScroll=strScroll+strText.substring(intPos,intWidth+intPos);
}
window.status = strScroll;
setTimeout("scroll()", intSpeed);
}
</script>
<table width="720" height="112" border="0" align="center" cellpadding="0" cellspacing="0" id="Tim Kelley's">
<tr>
<td width="720" height="40" valign="top" bgcolor="#9d9d8a" class="style26"><a name="linktop" id="linktop"></a></td>
</tr>
<tr>
<td height="40" valign="top" class="style26"><img src="TK_Title-Banner_with_duck.jpg" width="720" height="72" onClick="MM_preloadImages('TK_Title-Banner_with_duck.jpg')" /></td>
</tr>
</table>
<table width="720" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<th width="155" bgcolor="#9d9d8a" scope="col"><span class="style64"><br />
<br />
</span></th>
<th width="552" rowspan="15" align="left" valign="top" bgcolor="#F1F0EB" class="style26" scope="col"><blockquote>
<p>&nbsp;</p>
<P align=center><EM style="FONT-STYLE: normal"><SPAN class=style5><FONT
size=5>Guest Book </FONT></SPAN></EM></P>
<P class=style6 align=center>Please sign our guest book.<BR>
We would like
to know how you found us. Thanks! </P>
<form method="post" action="cdosys.asp">
<table width="475" border="0" align="center" cellpadding="3">
<tr>
<td width="221">Name:</td>
<td width="236"> <label><span id="sprytextfield1">
<input name="Name" type="text" id="Name" style="BACKGROUND-COLOR: #ffffff" size="30" maxlength="50">
<span class="textfieldRequiredMsg">Required</span></span></label></td>
</tr>
<tr>
<td>Email:</td>
<td><label><span id="sprytextfield2">
<input name="Email" type="text" id="Email" style="BACKGROUND-COLOR: #ffffff"size="30" maxlength="60">
<span class="textfieldRequiredMsg">Required</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></label></td>
</tr>
<tr>
<td>Address:</td>
<td><label><span id="sprytextfield9">
<input name="Address" type="text" id="Address" style="BACKGROUND-COLOR: #ffffff" size="30" maxlength="40">
<br>
</span></label></td>
</tr>
<tr>
<td>City, State:</td>
<td><label><span id="sprytextfield4">
<input name="City, State" type="text" id="City, State" style="BACKGROUND-COLOR: #ffffff" size="30" maxlength="50">
<span class="textfieldRequiredMsg">Required</span></span></label></td>
</tr>
<tr>
<td>Zip Code:</td>
<td><label><span id="sprytextfield5">
<input name="Zip Code" type="text" id="Zip Code" style="BACKGROUND-COLOR: #ffffff" size="30" maxlength="11">
<span class="textfieldRequiredMsg">Required</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></label></td>
</tr>
<tr>
<td>Phone:</td>
<td><label><span id="sprytextfield6">
<input name="Phone" type="text" id="Phone" style="BACKGROUND-COLOR: #ffffff" size="30" maxlength="12">
<span class="textfieldRequiredMsg">Required</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span></label></td>
</tr>

<td>How did you find us?:</td>
<td><label></label>
<span id="spryselect1">
<label>
<select name="How did you find us?" id="How did you find us?" style="BACKGROUND-COLOR: #ffffff">
<option selected>Select One</option>
<option value="Brochure">Brochure</option>
<option value="DU Magazine">DU Magazine</option>
<option value="Eagle Lake Chamber of Commerce">Eagle Lake Chamber of Commerce</option>
<option value="Email">Email</option>
<option value="Friend">Friend</option>
<option value="Internet">Internet</option>
<option value="Mailing">Mailing</option>
<option value="Texas Waterfowl Digest">Texas Waterfowl Digest</option>
<option value="Waterfowl and Retriever">Waterfowl and Retriever</option>
<option value="Wildfowl Magazine">Wildfowl Magazine</option>
<option value="Other">Other</option>
</select>
</label>
<span class="selectRequiredMsg">Please select an item.</span></span>
<tr>
<td>If other, please specify:</td>
<td><label><span id="sprytextfield7">
<input name="Other" type="text" id="Other" style="BACKGROUND-COLOR: #ffffff" size="30" maxlength="50">
</span></label></td>
</tr>
<tr>
<td>Comments:</td>
<td><label><span id="sprytextarea1">
<textarea name="Comments" id="Comments" style="BACKGROUND-COLOR: #ffffff" cols="35" rows="5"></textarea>
<span id="countsprytextarea1">&nbsp;</span> <span class="textareaMaxCharsMsg">Exceeded maximum number of characters.</span> </span></label></td>
</tr>
<tr>
<td><div align="left"><br>
Type the following word in the box. <img src="images/No-Spam.jpg" alt="" width="91" height="31"></div></td>
<td><label><span id="sprytextfield8">
<input name="NoSpam" type="text" id="NoSpam" style="BACKGROUND-COLOR: #ffffff" size="7" maxlength="7">
<span class="textfieldRequiredMsg">Required</span><span class="textfieldMinCharsMsg">Minimum number of characters not met.</span><span class="textfieldMaxCharsMsg">Exceeded maximum number of characters.</span><span class="textfieldInvalidFormatMsg">Invalid format.</span></span</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input name="email_subject" type="hidden" value="Your Guestbook Has Been Signed" />
<input name="redirect_to" type="hidden" value="http://www.waterfowloutfittersunlimited.com/guestconfirmation.htm"/>
<input name="Submit" type="submit" id="Submit" value="Submit">
<input type="reset" name="Reset" id="Reset" value="Reset">
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
</tr>
</table>
</form>
<p align="center" class="style17 style78">&nbsp;</p>
</blockquote></th>
</tr>

<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="default.htm"><img src="Page_Icons_2006/Light Icons/Home-Icon.jpg" alt="Home" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Home-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="Lodge.htm"><img src="Page_Icons_2006/Light Icons/Lodge-Icon.jpg" alt="Lodge" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Lodge-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="Directions.htm"><img src="Page_Icons_2006/Light Icons/Directions-Icon.jpg" alt="Directions" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Directions-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="Pricing.htm"><img src="Page_Icons_2006/Light Icons/Pricing-Icon.jpg" alt="Pricing" width="155" height="22" border="0" align="middle" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Pricing-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="seasondate.htm"><img src="Page_Icons_2006/Light Icons/SeasonDates-Icon.jpg" alt="Season Dates" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/SeasonDates-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="current.htm"><img src="Page_Icons_2006/Light Icons/Weather-Icon.jpg" alt="Current Weather" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Weather-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="equipmen.htm"><img src="Page_Icons_2006/Light Icons/Equipment-Icon.jpg" alt="Equipment" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Weather-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="photos.htm"><img src="Page_Icons_2006/Light Icons/Photos-Icon.jpg" alt="Photos" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Photos-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="news_releases.htm"><img src="Page_Icons_2006/Light Icons/News-Icon.jpg" alt="News Releases" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/News-Icon.jpg')"/></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="links.htm"><img src="Page_Icons_2006/Light Icons/Contact-Icon.jpg" alt="Contact Us" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Contact-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="guest.htm"><img src="Page_Icons_2006/Light Icons/Guest_Book-Icon.jpg" alt="Guest Book" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Guest_Book-Icon.jpg')" /></a><br />
<br /></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><a href="general_store.htm"><img src="Page_Icons_2006/General_Store_Icon.jpg" alt="General Store" width="155" height="22" border="0" onClick="MM_preloadImages('Page_Icons_2006/General_Store_Icon.jpg')" /></a></th>
</tr>
<tr bgcolor="#9d9d8a">
<th bgcolor="#9d9d8a" class="style49" scope="col"><p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p></th>
</tr>
<tr>
<th bgcolor="#9d9d8a" scope="col"><p>&nbsp;</p></th>
</tr>
</table>
<table width="720" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#9d9d88">
<tr>
<th width="154" scope="col">&nbsp;</th>
<th width="215" scope="col"><img src="Page_Icons_2006/Light Icons/Address.jpg" width="187" height="20" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Address.jpg')" /></th>
<th width="202" scope="col"><div align="center"><img src="Page_Icons_2006/Light Icons/888.jpg" width="187" height="20" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/Address.jpg')" /></div></th>
<th width="149" scope="col"><a href="mailto:waterfowlou@sbcglobal.net"><img src="Page_Icons_2006/Light Icons/bottom_email.jpg" width="144" height="20" border="0" onClick="MM_preloadImages('Page_Icons_2006/Light Icons/bottom_email.jpg')" /></a></a></th>
</tr>
</table>
<script type="text/javascript">
<!--
var sprytextfield1 = new Spry.Widget.ValidationTextField("sprytextfield1", "none");
var sprytextfield2 = new Spry.Widget.ValidationTextField("sprytextfield2", "email");
var sprytextfield3 = new Spry.Widget.ValidationTextField("sprytextfield3", "real");
var sprytextfield4 = new Spry.Widget.ValidationTextField("sprytextfield4");
var sprytextfield5 = new Spry.Widget.ValidationTextField("sprytextfield5", "zip_code");
var sprytextfield6 = new Spry.Widget.ValidationTextField("sprytextfield6", "phone_number", {format:"phone_custom", pattern:"xxx-xxx-xxxx", useCharacterMasking:true, isRequired:false});
var spryselect1 = new Spry.Widget.ValidationSelect("spryselect1");
var sprytextfield7 = new Spry.Widget.ValidationTextField("sprytextfield7", "none", {isRequired:false});
var sprytextarea1 = new Spry.Widget.ValidationTextarea("sprytextarea1", {isRequired:false, maxChars:400, counterType:"chars_remaining", counterId:"countsprytextarea1"});
var sprytextfield8 = new Spry.Widget.ValidationTextField("sprytextfield8", "custom", {pattern:"Xx-Xxxx", useCharacterMasking:true});
var sprytextfield9 = new Spry.Widget.ValidationTextField("sprytextfield9");
//-->
</script>
</body>
</html>


Thanks for your help!!!

whammy
04-06-2009, 06:42 AM
Is your company requiring you to use dreamweaver? I hope not. :(

... anyway I will post a solution using Spudhead's very valid suggestions if I have the time soon. I can't right now.

I would think you shouldn't be getting a LOT of spam from your web form anyway as long as they can't spoof the receipient's email address.

whammy
04-06-2009, 07:08 AM
BTW if you want to 'get it' and have the time, go do the tutorials at http://www.w3schools.com for HTML/XHTML, the javascript tutorials there and here, and quit using dreamweaver or frontpage, they are abominations. :)

If you use standards-compliant code, from my experience, you don't need any keywords to jump right to the top of Google or other search engines, their spiders will love you. :)