Jump to content

Can't validate form


pmoore

Recommended Posts

This started out as a tell a friend script to add one friend and I've added the variables $FriendName1, $FriendName2, $FriendEmail1, and $FriendEmail2.  I'm close to modifying it to suit my needs (send to up to three friends) but when I submit the form it gives an error:

 

"- FriendName1 must contain a number"

 

I'm sure it will happen for FriendName2 as well, and I'm stuck.  Here's the entire code:

 


<?php

$FriendName = $_POST['FriendName'];
$FriendName1 = $_POST['FriendName1'];
$FriendName2 = $_POST['FriendName2'];
$FriendEmail = $_POST['FriendEmail'];
$FriendEmail1 = $_POST['FriendEmail1'];
$FriendEmail2 = $_POST['FriendEmail2'];
$Name = $_POST['Name'];
$Email = $_POST['Email'];
$emailtext = $_POST['emailtext'];
$string = $_SERVER['QUERY_STRING'];

?>
<html><head>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
  } if (errors) alert('The following error(s) occurred:\n'+errors);
  document.MM_returnValue = (errors == '');
}
//-->
</script>
</head>
<body>
<?php
if (!$FriendEmail) {
?>
<br>
<form name="form1" onsubmit="MM_validateForm('Name','','R','Email','','RisEmail','FriendName','','R','FriendEmail','','RisEmail','FriendName1','','val','FriendName2','FriendEmail1','','isEmail','FriendEmail2','','isEmail');return document.MM_returnValue" action="" method="POST">
<div align="center">
<table width="427" border="0" cellspacing="0" cellpadding="3">
  <tr> 
    <td width="69" align="right" valign="top"> </td>
    <td width="5"><font face="Verdana" size="2"> </font></td>
    <td width="113"><font face="Verdana" size="2">Name: </font> </td>
    <td width="216"> <font face="Verdana" size="2">E-mail:</font></td>
  </tr>
  <tr> 
    <td align="right" valign="top"><font face="Verdana" size="2"><b>You:</b></font></td>
    <td> </td>
    <td> 
      <font face="Verdana"> 
      <input type="text" name="Name" size="15"><font size="2"> </font></font>
    </td>
    <td> 
      <font face="Verdana"> 
      <input type="text" name="Email" size="20"><font size="2"> </font></font>
    </td>
  </tr>
  <tr> 
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Friend:</b></font></td>
    <td> </td>
    <td> 
      <font face="Verdana"> 
      <input type="text" name="FriendName" size="15"><font size="2"> </font>
	</font>
    </td>
    <td> 
      <font face="Verdana"> 
      <input type="text" name="FriendEmail" size="20"><font size="2"> </font>
	</font>
    </td>
  </tr>
  <tr>
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Friend:</b></font></td>
    <td> </td>
    <td>
      <font face="Verdana">
      <input type="text" name="FriendName1" size="15"><font size="2"> </font>
	</font>
    </td>
    <td>
      <font face="Verdana">
      <input type="text" name="FriendEmail1" size="20"><font size="2"> </font>
	</font>
    </td>
  </tr>
  <tr>
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Friend:</b></font></td>
    <td> </td>
    <td>
      <font face="Verdana">
      <input type="text" name="FriendName2" size="15"><font size="2"> </font>
	</font>
    </td>
    <td>
      <font face="Verdana">
      <input type="text" name="FriendEmail2" size="20"><font size="2"> </font>
	</font>
    </td>
  </tr>
  <tr> 
    <td align="right" valign="top"><font face="Verdana" size="2"><b>Message:</b></font></td>
    <td> </td>
    <td colspan="2"> 
      <font face="Verdana"> 
      <textarea name="emailtext" cols="38" rows="6" style="font-family: Trebuchet MS; font-size: 10pt">
I thought you might be interested in this!
Here is the link to the page: <?php echo $string ?>
</textarea><font size="2"> </font></font>
    </td>
  </tr>
  <tr> 
    <td align="right"> </td>
    <td><font face="Verdana" size="2">  </font> </td>
    <td> 
      <font face="Verdana"> 
      <input type="submit" value="Send" name="Submit"><font size="2"> </font>
	</font>
    </td>
    <td> </td>
  </tr>
</table>
</div>
</form>
<?php
}
else {
if ($FriendEmail) { mail( $FriendEmail, "Message from $Name", "$FriendName,  \n\n".$emailtext ."\n\n$Name", "From: $Email");
if ($FriendEmail1) { mail( $FriendEmail1, "Message from $Name", "$FriendName1,  \n\n".$emailtext ."\n\n$Name", "From: $Email");
if ($FriendEmail2) { mail( $FriendEmail2, "Message from $Name", "$FriendName,  \n\n".$emailtext ."\n\n$Name", "From: $Email");
                    
  }
  }
   }
echo "<center><br><br><font face=Verdana size=2>Thank you <font color=red>$Name</font>. This page has been sent to <font color=red>$FriendName  $FriendName1  $FriendName2</font>. <br><br><a href='javascript:window.close();'>Close this window</a></font><p>";
}
?>
<p> </p>
</body>
</html>

 

I'm pretty sure that this is the line giving me trouble:

 

<form name="form1" onsubmit="MM_validateForm('Name','','R','Email','','RisEmail','FriendName','','R','FriendEmail','','RisEmail','FriendName1','','val','FriendName2','FriendEmail1','','isEmail','FriendEmail2','','isEmail');return document.MM_returnValue" action="" method="POST">

 

I'm just not sure what to do from here.  I've been at it for a while.  Searched for form validating, MM_validateForm, etc... and I'm just lost.  I'm new to all this but try to do stuff myself.

 

I appreciate any help!

Link to comment
https://forums.phpfreaks.com/topic/108602-cant-validate-form/
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.