pmoore Posted June 3, 2008 Share Posted June 3, 2008 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 More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.