pixel-ape Posted April 30, 2015 Share Posted April 30, 2015 Hi there, Im new here and hoping you can help me. Im trying to create a simple email form on my website and it doesnt appear to be working. Iv used this same script a bunch of times and never had problems before. Heres the PHP script which is saved as "html_form_send.php" ------------------------------------------------------------------------------------ <?phpif(isset($_POST['email'])) { // CHANGE THE TWO LINES BELOW $email_to = "mysite@gmail.com"; $email_subject = "Website Enquiry"; function died($error) { // your error code can go here echo "We are very sorry, but there were error(s) found with the form you submitted. "; echo "These errors appear below.<br /><br />"; echo $error."<br /><br />"; echo "Please go back and fix these errors.<br /><br />"; die(); } // validation expected data exists if(!isset($_POST['first_name']) || !isset($_POST['last_name']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['comments'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // not required $comments = $_POST['comments']; // required $error_message = ""; $email_exp = '/^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; if(!preg_match($email_exp,$email_from)) { $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; } $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$first_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } if(!preg_match($string_exp,$last_name)) { $error_message .= 'The Last Name you entered does not appear to be valid.<br />'; } if(strlen($comments) < 2) { $error_message .= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($error_message); } $email_message = "Form details below.\n\n"; function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Telephone: ".clean_string($telephone)."\n"; $email_message .= "Comments: ".clean_string($comments)."\n"; // create email headers$headers = 'From: '.$email_from."\r\n".'Reply-To: '.$email_from."\r\n" .'X-Mailer: PHP/' . phpversion();@mail($email_to, $email_subject, $email_message, $headers);header( "Location: http://www.mysite.com" ); ?> <!-- place your own success html below --> <?php}die();?> ------------------------------------------------------------------------------------ And heres the HTML code: ------------------------------------------------------------------------------------ <form action="html_form_send.php" method="post" name="htmlform" id="htmlform"> <table width="60%" border="0" cellspacing="5" cellpadding="2"> <tr> <td width="40%"><span class="description2"><strong>First Name*</strong></span></td> <td width="60"> <span class="description2"> <input name="first_name" type="text" class="description" id="Name" size="20" /> </span></td> </tr> <tr> <td width="40%"><span class="description2"><strong>Surname*</strong></span></td> <td width="60"> <span class="description2"> <input name="last_name" type="text" class="description" id="Surname" size="20" /> </span></td> </tr> <tr> <td width="40%"><span class="description2"><strong>Email*</strong></span></td> <td width="60"> <span class="description2"> <input name="email" type="text" class="description" id="Mail" size="20" /> </span></td> </tr> <tr> <td width="40%"><span class="description2"><strong>Phone</strong></span></td> <td width="60"> <span class="description2"> <input name="telephone" type="text" class="description" id="Phone" size="20" /> </span></td> </tr> <tr> <td width="40%" valign="top"><span class="description2"><strong>Message*</strong></span></td> <td width="60"> <span class="description2"> <textarea name="comments" cols="35" rows="6" class="description" id="Message"></textarea> </span></td> </tr> <tr> <td width="40%"> </td> <td width="60"><span class="description2"> <input name="submit" type="submit" class="description" id="enquire" value="Enquire" /> </span></td> </tr> </table> </form></td> ------------------------------------------------------------------------------------ Obviously just replaced my actual website with "mysite" in the script. Hope somebody can help me. Thankyou, Mark Quote Link to comment https://forums.phpfreaks.com/topic/295990-php-mail-troubleshooting/ Share on other sites More sharing options...
ginerjm Posted April 30, 2015 Share Posted April 30, 2015 How far does your code manage to make it? Do you have error checking turned on? Add some echos at various steps in the process and show some values so you can see if things are happening as you designed. Quote Link to comment https://forums.phpfreaks.com/topic/295990-php-mail-troubleshooting/#findComment-1510483 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.