Validering formmail
Hejsa EksperterJeg er begyndt at på spammails via min ganske enkle formmail,
derfor er jeg ved at få lavet lidt javascriptvalidering på siden.
Jeg her 4 felter og der ser ud som om at jeg får valideret de 3 første felter helt fint, det er grundlæggende det samme der valideres for i alle 4 felter - MEN i det sidste felt går det galt og jeg kan simpelt hen ikke finde ud af hvorfor.
Der valideres for mindst 25 karakterer i feltet den del fungerer fint, når jeg så tasker flere end de 25 karakterer validerer jeg for 3 ulovlige karakterer @#& - men den er sgu ligeglad, den fejler hvergang.
Jeg har kodet og checket siden i PSpad.
her er hele siden kode - Please hjælp mig
<html>
<head>
<meta http-equiv="Content-Language" content="da">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Skriv til mig</title>
<base target="_self">
</head>
<body bgcolor="#BBCED0" >
<p> </p>
<p><font face="Comic Sans MS" size="4">Du kan skrive til mig her</font></p>
<p><font face="Comic Sans MS" size="2">Udfyld alle
felter og tryk send på Send E-mailknappen.</font></p>
<script type Language="JavaScript">
<!--
function Form1_Validator(theForm)
{
// check to see if the field is blank
if (theForm.MAIL_Navn.value == "")
{
alert("Du skal indtaste Navn.");
theForm.MAIL_Navn.focus();
return (false);
}
// require at least 5 characters be entered
if (theForm.MAIL_Navn.value.length < 5)
{
alert("Indtast mindst 5 karakterer i \"Navne\" feltet.");
theForm.MAIL_Navn.focus();
return (false);
}
// Check for indvalide characters i navn
var checkStr = theForm.MAIL_Navn.value;
var allValid = true;
var invalids = "!@#$%^&*()-~,'<.>/?;:\|"
for(i=0; i<checkStr.length; i++)
if(checkStr.indexOf(invalids.charAt(i)) >= 0 )
{
alert("Du har indtaste en ulovlig karakter i Navn. !@#$%^&*()-~,'<.>/?;:\|");
theForm.MAIL_Navn.focus();
return (false);
}
// check if email field is blank
if (theForm.MAIL_SENDER.value == "")
{
alert("Du skal indtaste email adresse i \"Email\" feltet.");
theForm.MAIL_SENDER.focus();
return (false);
}
// test if valid email address, must have @ and .
var checkEmail = "@.";
var checkStr = theForm.MAIL_SENDER.value;
var EmailValid = false;
var EmailAt = false;
var EmailPeriod = false;
for (i = 0; i < checkStr.length; i++)
{
ch = checkStr.charAt(i);
for (j = 0; j < checkEmail.length; j++)
{
if (ch == checkEmail.charAt(j) && ch == "@")
EmailAt = true;
if (ch == checkEmail.charAt(j) && ch == ".")
EmailPeriod = true;
if (EmailAt && EmailPeriod)
break;
if (j == checkEmail.length)
break;
}
// if both the @ and . were in the string
if (EmailAt && EmailPeriod)
{
EmailValid = true
break;
}
}
if (!EmailValid)
{
alert("Feltet \"email\" skal indeholde både \"@\" og \".\".");
theForm.MAIL_SENDER.focus();
return (false);
}
// check to see if the field is blank
if (theForm.MAIL_Emne.value == "")
{
alert("Du skal indtaste Emne i Emne feltet.");
theForm.MAIL_Emne.focus();
return (false);
}
// Check for indvalide characters i navn
var checkStr = theForm.MAIL_Emne.value;
var allValid = true;
var invalids = "!@#$%^&*()-~,'<.>/?;:\|"
for(i=0; i<checkStr.length; i++)
if(checkStr.indexOf(invalids.charAt(i)) >= 0 )
{
alert("Du har indtaste en ulovlig karakter i Emne. !@#$%^&*()-~,'<.>/?;:\|");
theForm.MAIL_Emne.focus();
return (false);
}
// Check for indvalide characters i tekst
var checkStr = theForm.MAIL_Tekst.value;
var allValid = true;
var invalids = "@#&"
for(i=0; i<checkStr.length; i++)
if(checkStr.indexOf(invalids.charAt(i)) >= 0 )
{
alert("Du har indtaste en ulovlig karakter i Tekst. @ # &");
theForm.MAIL_Tekst.focus();
return (false);
}
// require at least 25 characters be entered
if (theForm.MAIL_Tekst.value.length < 25)
{
alert("Indtast mindst 25 karakterer i \"Tekst\" feltet.");
theForm.MAIL_Tekst.focus();
return (false);
}
}
//--></script>
<form name="formmail" action="/cgi-bin/formmail/formmail.cgi" method="post" onsubmit="return Form1_Validator(this)">
<input type=hidden name="subject" value="Post fra skriv til mig">
<input type=hidden name="recipient" value="navn@mailadresse.dk">
<input type=hidden name="required" value="MAIL_Navn,MAIL_SENDER,MAIL_Emne">
<table border="0" width="100%">
<tr>
<td width="10%"><font face="Comic Sans MS" size="2">Navn: </font>
</td>
<td width="90%"><font face="Comic Sans MS" size="2"><INPUT TYPE="text" SIZE="50" NAME="MAIL_Navn">
<font color="#FF0000">(*)</font>
</font>
</td>
</tr>
<tr>
<td width="10%"><font face="Comic Sans MS" size="2">
Email:
</font>
</td>
<td width="90%"><font face="Comic Sans MS" size="2"><INPUT TYPE="text" SIZE="27" NAME="MAIL_SENDER">
<font color="#FF0000">(*)</font>
</font>
</td>
</tr>
<tr>
<td width="10%"><font face="Comic Sans MS" size="2">
Emne:
</font>
</td>
<td width="90%"><font face="Comic Sans MS" size="2"><INPUT TYPE="text" SIZE="20" NAME="MAIL_Emne">
<font color="#FF0000">(*)</font>
</font>
</td>
</tr>
<tr>
<td width="10%"><font face="Comic Sans MS" size="2"> </font></td>
<td width="90%"></td>
</tr>
<tr>
<td width="10%"><font face="Comic Sans MS" size="2">Tekst:</font></td>
<td width="90%"><font face="Comic Sans MS" size="2"><TEXTAREA NAME="MAIL_Tekst" ROWS="7" COLS="50"></TEXTAREA></font></td>
</tr>
<tr>
<td width="10%"><font face="Comic Sans MS" size="2"> </font></td>
<td width="90%"><font face="Comic Sans MS" size="2"> </font></td>
</tr>
<tr>
<td width="10%"></td>
<td width="90%"><font face="Comic Sans MS" size="2"><INPUT TYPE="submit" VALUE="Send E-mail">
</font>
</td>
</tr>
</table>
<p>
<font face="Comic Sans MS" size="2">
<BR>
</font>
</p>
</FORM>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
</body>
</html>
