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.. 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? 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 protected]'; $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> 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
Archived
This topic is now archived and is closed to further replies.