samuvk Posted February 22, 2013 Share Posted February 22, 2013 I have the following PHP form that works perfectly and I want to add the possibility to attach a file and after 3 weeks of research I still not able to find a way to do. Please any help will be highly appreciated. Thanks HTML CODE: Code: <form name="htmlform" method="post" action="MyphpFile.php"> <table width="450px"> </tr> <tr> <td valign="top"> <label for="first_name"><b>First Name *</b></label> </td> <td valign="top"> <input type="text" name="first_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top""> <label for="last_name"><b>Last Name *</b></label> </td> <td valign="top"> <input type="text" name="last_name" maxlength="50" size="30"> </td> </tr> <tr> <td valign="top"> <label for="email"><b>Email *<font size='2'></b></label> </td> <td valign="top"> <input type="text" name="email" maxlength="80" size="30"> </td> </tr> <tr> <td valign="top"> <label for="comments"><b>Comments*</b></label> </td> <td valign="top"> <textarea name="comments" maxlength="1000" cols="25" rows="6"></textarea> </td> </tr> <tr> <td colspan="4" style="text-align:center"> <br><br> <input type="submit" value="Submit"> </td> </tr> </table> </form> And here is the code of my PHP File: PHP Code: <?php if(isset($_POST['email'])) { // CHANGE THE TWO LINES BELOW $email_to = "myemail@gmail.com"; $email_subject = "Reporting and issue in UnlimitedWonders"; 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['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 $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 .= "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); ?> <!-- place your own success html below --> Thank you <?php } die(); ?> Quote Link to comment https://forums.phpfreaks.com/topic/274838-attach-file-to-my-contact-form/ Share on other sites More sharing options...
AyKay47 Posted February 22, 2013 Share Posted February 22, 2013 the form tag attribute enctype needs to be set to multipart/form-data and an input tag with type=file needs to be present. You can easily google how to process uploaded files via PHP. Quote Link to comment https://forums.phpfreaks.com/topic/274838-attach-file-to-my-contact-form/#findComment-1414290 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.