www.webdeveloper.com
Results 1 to 3 of 3

Thread: Attach file to my contact form

  1. #1
    Join Date
    Feb 2013
    Posts
    5

    Attach file to my contact form

    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:


    HTML 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]
    <?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();
    ?> [/PHP]

  2. #2
    Join Date
    Nov 2012
    Location
    Jakarta
    Posts
    42

    Lightbulb

    There are two steps involved here:
    1. Uploading the file to the server.
    2. Attaching the file to the email.

    So, if you are looking for one solution, there are none.

    What you can do is handle them individually.

    Step 1: Uploading the file to the server is described in the PHP Manual -> Features -> Handling File Uploads.http://www.php.net/manual/en/features.file-upload.php

    Step 2:Attaching the file to the email. I did a quick google and found Web Cheat Sheet article to be quite acceptable. http://webcheatsheet.com/PHP/send_em...attachment.php

    Good luck!

  3. #3
    Join Date
    Mar 2011
    Location
    The Pleiades
    Posts
    31
    Add this attribute to your <form> tag for a start:
    Code:
    enctype="multipart/form-data"
    Next create a file input:
    Code:
    <input type="file" name="your_file" />
    There's much more to explain but start by doing that.

    Kind regards,

    LC

Thread Information

Users Browsing this Thread

There are currently 3 users browsing this thread. (0 members and 3 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
HTML5 Development Center



Recent Articles