beemo Posted July 28, 2013 Share Posted July 28, 2013 (edited) I am new to php and I've got a query for all you professionals, I have this script which is meant to send emails to me but what I want to do is instead of redirecting the user(s) to a different page to display the results I would like for it to show the success message or fail message on the same page as the form. I hope I am making my self clear. I would like to know if you could tell me how to implement it.index.html: <!DOCTYPE html> <html> <head> <title></title> </head> <body> <form action="send_form_email.php" id="contactform" method="post" name= "contactform"> <table width="450px"> <tr> <td valign="top"><label for="title">Title *</label></td> <td valign="top"><input maxlength="50" name="title" size="30" type="text"></td> </tr> <tr> <td></td> </tr> <tr> <td valign="top"><label for="fname">First Name *</label></td> <td valign="top"><input maxlength="50" name="fname" size="30" type="text"></td> </tr> <tr> <td></td> </tr> <tr> <td valign="top"><label for="mname">Middle Name</label></td> <td valign="top"><input maxlength="50" name="mname" size="30" type="text"></td> </tr> <tr> <td valign="top"><label for="lname">Last Name *</label></td> <td valign="top"><input maxlength="50" name="lname" size="30" type="text"></td> </tr> <tr> <td valign="top"><label for="suffix">Suffix</label></td> <td valign="top"><input maxlength="80" name="suffix" size="30" type="text"></td> </tr> <tr> <td valign="top"><label for="message">Message *</label></td> <td valign="top"> <textarea cols="25" maxlength="1000" name="message" rows="6"> </textarea></td> </tr> <tr> <td></td> </tr> <tr> <td valign="top"><label for="email">Email Address *</label></td> <td valign="top"><input maxlength="80" name="email" size="30" type="text"></td> </tr> <tr> <td colspan="2" style="text-align:center"><input type="submit" value="Submit"></td> </tr> </table> </form> </body> </html> send_form_email.php: <?php if(isset($_POST['email'])) { // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "test@gmail.com"; $email_subject = "Your email subject line"; 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['title']) || !isset($_POST['fname']) || !isset($_POST['mname']) || !isset($_POST['lname']) || !isset($_POST['suffix']) || !isset($_POST['message']) || !isset($_POST['email'])) { died('We are sorry, but there appears to be a problem with the form you submitted.'); } $title_name = $_POST['title']; // required $first_name = $_POST['fname']; // required $middle_name = $_POST['mname']; $last_name = $_POST['lname']; // required $suffix_name = $_POST['suffix']; $message = $_POST['message']; // required $email_from = $_POST['email']; // required $error_message = ""; $string_exp = "/^[A-Za-z .'-]+$/"; if(!preg_match($string_exp,$title_name)) { $error_message .= 'The First Name you entered does not appear to be valid.<br />'; } 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,$middle_name)) { $error_message .= 'The Middle 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(!preg_match($string_exp,$suffix_name)) { $error_message .= 'The Suffix Name you entered does not appear to be valid.<br />'; } if(strlen($message) < 2) { $error_message .= 'The Message you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0) { died($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 />'; } $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 .= "Title Name: ".clean_string($title_name)."\n"; $email_message .= "First Name: ".clean_string($first_name)."\n"; $email_message .= "Middle Name: ".clean_string($middle_name)."\n"; $email_message .= "Last Name: ".clean_string($last_name)."\n"; $email_message .= "Last Name: ".clean_string($suffix_name)."\n"; $email_message .= "Comments: ".clean_string($message)."\n"; $email_message .= "Email: ".clean_string($email_from)."\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); ?> <!-- include your own success html here --> <center>Thank you for contacting us. We will be in touch with you very soon.</center> <?php } ?> If you're confused about anything please let me know. Edited July 28, 2013 by beemo Quote Link to comment https://forums.phpfreaks.com/topic/280587-contact-page/ Share on other sites More sharing options...
mac_gyver Posted July 28, 2013 Share Posted July 28, 2013 all you have done here is to dump your existing code on the forum and state what you want. it is really beyond the scope of what a forum can do to provide you with all the information you would need to know to make or convert your code to use ajax. you are at the point of needing to research and learn the basics of what you want (research and learning is something you do), not at the point of having a coding problem with some code you wrote (what help forums are best at doing.) i would recommend that you search the Internet for "php ajax mail form" (add jquery to that search if you want to limit the results to using the jquery library) and work through a tutorial or two, then if you are having specific problems with your code after you attempt this, post back on the forum to get directed help with a specific problem with your ajax based code. Quote Link to comment https://forums.phpfreaks.com/topic/280587-contact-page/#findComment-1442500 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.