SitePoint Sponsor

User Tag List

Results 1 to 7 of 7
  1. #1
    SitePoint Member
    Join Date
    May 2011
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Form upload file function - HELP!

    I am not very php proficient! I have developed an email form for a client of mine and all works fine, I just need to add an "Upload your photo" function to it.

    However I need the upload to be sent as an email attachment, how would I do this? This is my current form code:

    Code:
    <?php
                     $error    = ''; // error message
                     $name     = ''; // sender's name
                     $email    = ''; // sender's email address
                     $telnumber = ''; // telephone number
    
                if(isset($_POST['send']))
                {
                     $name = $_POST['name'];
                     $email    = $_POST['email'];
                     $telnumber = $_POST['telnumber'];
    
                    if(trim($name) == '')
                    {
                        $error = '<div class="errormsg">Please enter your name!</div>';
                    }
                        else if(trim($email) == '')
                    {
                        $error = '<div class="errormsg">Please enter your email address!</div>';
                    }
                    else if(!isEmail($email))
                    {
                        $error = '<div class="errormsg">You have enter an invalid e-mail address. Please, try again!</div>';
                    }
                    if($error == '')
                    {
                        if(get_magic_quotes_gpc())
                        {
                            $message = stripslashes($message);
                        }
    
                        // the email will be sent here
                        // make sure to change this to be your e-mail
                        $to      = "";
    
                        // the email subject
                        // '[Contact Form] :' will appear automatically in the subject.
                        // You can change it as you want
    
                        $subject = $subject;
    
                        // the mail message ( add any additional information if you want )
                        $msg     = "From : $name \r\n e-Mail : $email \r\n Telephone Number : $telnumber";
    
                        mail($to, $subject, $msg, "From: $email\r\nReply-To: $email\r\nReturn-Path: $email\r\n");
                ?>
    
                      <!-- Message sent! (change the text below as you wish)-->
                      <div style="margin-top: 20px; margin-bottom:250px;">
                        <h1>Message Sent.</h1>
                           <p style="text-align:center;">Thank you <b><?=$name;?></b>, you have successfully entered the competition.</p>
                           <p style="text-align:center;">Please <a href="#">click here</a> to go back to the home page.</a></p>
                      </div>
                      <!--End Message Sent-->
    
    
                <?php
                    }
                }
    
                if(!isset($_POST['send']) || $error != '')
                {
                ?>
    
    
                <!--Error Message-->
                <?=$error;?>
    
                <form  method="post" name="contFrm" id="contFrm" action="">
    
                          <label><p>Full Name <span style="font-size:8px; color:#73c8d9;">REQUIRED</span></p></label>
                            <input name="name" type="text" class="box" id="name" style="width:210px;" value="<?=$name;?>" /><br/>
    
                            <label><p>Email <span style="font-size:8px; color:#73c8d9;">REQUIRED</span></p></label>
                            <input name="email" type="text" class="box" id="email" style="width:210px;" value="<?=$email;?>" /><br/>
    
                            <label><p>Tel Number <span style="font-size:8px; color:#73c8d9;">REQUIRED</span></p></label>
                            <input name="telnumber" type="text" class="box" id="telnumber" style="width:210px;" value="<?=$telnumber;?>" /><br/>
    
                            <label><p>Upload Photo <span style="font-size:8px; color:#73c8d9;">REQUIRED</span></p></label>
                            <input type="file"  name="ufile" />
    
                            <!-- Submit Button-->
                            <input name="send" type="submit" class="button" id="send" value="Submit" />
    
                </form>
    
                <!-- E-mail verification. Do not edit -->
                <?php
                }
    
                function isEmail($email)
                {
                    return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i"
                            ,$email));
                }
                ?>

    I'm aware the form code isn't 100% full proof but I need this to be running ASAP.

    Many thanks for anyones help!

  2. #2
    Twitter: @AnthonySterling silver trophy AnthonySterling's Avatar
    Join Date
    Apr 2008
    Location
    North-East, UK.
    Posts
    6,111
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    You'll be better off using a library to handle this for you, try SwiftMailer. It has sufficient documentation to help you along.
    @AnthonySterling: I'm a PHP developer, a consultant for oopnorth.com and the organiser of @phpne, a PHP User Group covering the North-East of England.

  3. #3
    SitePoint Member
    Join Date
    May 2011
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Hi,
    Thanks but I only have a very basic understanding of PHP I wouldn't be able to use swift-mailer (i've tried it).

    I had this code as I use it for most contact forms, it works fine... I know it's not very secure but it does the job.

    I just need to add a section of php into there to be able to send the files now.

  4. #4
    Twitter: @AnthonySterling silver trophy AnthonySterling's Avatar
    Join Date
    Apr 2008
    Location
    North-East, UK.
    Posts
    6,111
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Uni2r View Post
    I just need to add a section of php into there to be able to send the files now.
    Unfortunately, that's not the case.

    Persevere with a, well documented, library and you'll get there. If you don't want to invest the time however, that's a different issue.
    @AnthonySterling: I'm a PHP developer, a consultant for oopnorth.com and the organiser of @phpne, a PHP User Group covering the North-East of England.

  5. #5
    SitePoint Member
    Join Date
    May 2011
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I don't mind investing the time, i'm just not very php proficient.

    I don't think I would have the expertise to use the swiftmailer library.

  6. #6
    Twitter: @AnthonySterling silver trophy AnthonySterling's Avatar
    Join Date
    Apr 2008
    Location
    North-East, UK.
    Posts
    6,111
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)
    This is untested, but it should go something like this:-
    PHP Code:
    <?php
    require_once 'lib/swift_required.php';

    //Create the Transport
    $transport Swift_MailTransport::newInstance();

    //Create the Mailer using your created Transport
    $mailer Swift_Mailer::newInstance($transport);

    //Pass it as a parameter when you create the message
    $message Swift_Message::newInstance('My amazing subject');

    //Set To:
    $message->setTo(array('receiver@domain.org'));

    //Set From:
    $message->setFrom(array('john@doe.com' => 'John Doe'));

    // Set the body
    $message->setBody('My <em>amazing</em> body''text/html');

    //Create the attachment with your data
    $attachment Swift_Attachment::newInstance(file_get_contents($_FILES['uploadedfile']['tmp_name']), 'image.jpg''image/jpg');  

    //Attach it to the message
    $message->attach($attachment);

    //Send message
    $result $mailer->send($message);
    Check out the quick reference.
    @AnthonySterling: I'm a PHP developer, a consultant for oopnorth.com and the organiser of @phpne, a PHP User Group covering the North-East of England.

  7. #7
    SitePoint Member
    Join Date
    May 2011
    Posts
    4
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Would I keep my html the same?


Bookmarks

Posting Permissions

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