V Posted December 8, 2009 Share Posted December 8, 2009 Hello all! I'm new to php. Hoping to learn some new things! I put a html form in a Wordpress page with action redirecting to a php that sends the submitted information to my email. Here's the test page http://www.graphictask.com/?page_id=55 The form works but the validations I have for "name" and "email" fields don't work (they only work on a non-wordpress page) I can't figure out why the js is being ignored. However the checkbox SpryValidation works.. Quote Link to comment https://forums.phpfreaks.com/topic/184422-small-issue-with-php-form/ Share on other sites More sharing options...
forumforme123 Posted December 9, 2009 Share Posted December 9, 2009 post your js code? Quote Link to comment https://forums.phpfreaks.com/topic/184422-small-issue-with-php-form/#findComment-973908 Share on other sites More sharing options...
V Posted December 9, 2009 Author Share Posted December 9, 2009 Sorry! Here it is <?php function ValidateEmail($email) { $pattern = '/^([0-9a-z]([-.\w]*[0-9a-z])*@(([0-9a-z])+([-\w]*[0-9a-z])*\.)+[a-z]{2,6})$/i'; return preg_match($pattern, $email); } if($_SERVER['REQUEST_METHOD'] == 'POST') { $mailto = 'email@host.com'; $mailfrom = isset($_POST['email']) ? $_POST['email'] : $mailto; $subject = 'Website form'; $message = 'Values submitted from web site form:'; $success_url = ''; $error_url = ''; $error = ''; $eol = "\n"; $max_filesize = isset($_POST['filesize']) ? $_POST['filesize'] * 1024 : 1024000; $boundary = md5(uniqid(time())); $header = 'From: '.$mailfrom.$eol; $header .= 'Reply-To: '.$mailfrom.$eol; $header .= 'MIME-Version: 1.0'.$eol; $header .= 'Content-Type: multipart/mixed; boundary="'.$boundary.'"'.$eol; $header .= 'X-Mailer: PHP v'.phpversion().$eol; if (!ValidateEmail($mailfrom)) { $error .= "The specified email address is invalid!\n<br>"; } if (!empty($error)) { $errorcode = file_get_contents($error_url); $replace = "##error##"; $errorcode = str_replace($replace, $error, $errorcode); echo $errorcode; exit; } $internalfields = array ("submit", "reset", "send", "captcha_code"); $message .= $eol; foreach ($_POST as $key => $value) { if (!in_array(strtolower($key), $internalfields)) { if (!is_array($value)) { $message .= ucwords(str_replace("_", " ", $key)) . " : " . $value . $eol; } else { $message .= ucwords(str_replace("_", " ", $key)) . " : " . implode(",", $value) . $eol; } } } $body = 'This is a multi-part message in MIME format.'.$eol.$eol; $body .= '--'.$boundary.$eol; $body .= 'Content-Type: text/plain; charset=iso-8859-1'.$eol; $body .= 'Content-Transfer-Encoding: 8bit'.$eol; $body .= $eol.stripslashes($message).$eol; if (!empty($_FILES)) { foreach ($_FILES as $key => $value) { if ($_FILES[$key]['error'] == 0 && $_FILES[$key]['size'] <= $max_filesize) { $body .= '--'.$boundary.$eol; $body .= 'Content-Type: '.$_FILES[$key]['type'].'; name='.$_FILES[$key]['name'].$eol; $body .= 'Content-Transfer-Encoding: base64'.$eol; $body .= 'Content-Disposition: attachment; filename='.$_FILES[$key]['name'].$eol; $body .= $eol.chunk_split(base64_encode(file_get_contents($_FILES[$key]['tmp_name']))).$eol; } } } $body .= '--'.$boundary.'--'.$eol; mail($mailto, $subject, $body, $header); header('Location: '.$success_url); exit; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <link href="sampelformstyle.css" rel="stylesheet" type="text/css" /> <script src="SpryAssets/SpryValidationCheckbox.js" type="text/javascript"></script> <link href="SpryAssets/SpryValidationCheckbox.css" rel="stylesheet" type="text/css" /> <script type="text/javascript"> <!-- function MM_validateForm() { //v4.0 if (document.getElementById){ 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=document.getElementById(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> <form action="<?php echo basename(__FILE__); ?>" method="post" enctype="multipart/form-data" name="Form1" id="Form1"> <fieldset> <legend>contact</legend> <label>Name <input type="text" name="Name" id="Name" /> Email <input type="text" name="Email" id="Email" /> </label> </fieldset> <fieldset> <legend>message</legend> <label> <textarea name="textarea" id="textarea" cols="45" rows="5"></textarea> <br /> </label> <span id="sprycheckbox1"> <label> <input name="I agree!" type="checkbox" class="checkbox2" id="I agree!" /> I agree!</label> <span class="checkboxRequiredMsg">Please make a selection.</span></span> </fieldset> <label> <input name="submit" type="submit" id="submit" onclick="MM_validateForm('Name','','R','Email','','R');return document.MM_returnValue" value="Submit" /> </label> </form> <script type="text/javascript"> <!-- var sprycheckbox1 = new Spry.Widget.ValidationCheckbox("sprycheckbox1"); //--> </script> Quote Link to comment https://forums.phpfreaks.com/topic/184422-small-issue-with-php-form/#findComment-974126 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.