Welcome to our forums...

If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed.

Forum Statistics

  • Forum Members:
  • Total Threads:
  • Total Posts: 4
There are 1 users currently browsing forums.
PHP Scripting PHP is a scripting language for rapid web-development. It's a popular and powerful, OOP-capable language that is used by professionals. Discuss PHP here.

Reply
  #1  
Old 06-18-2009
Toddler
 
Join Date: Nov 2008
Location: West Midlands, UK
Age: 19
Posts: 19
Rep Power: 0
Asher is on a distinguished road
Lightbulb Adding attatchment facility to basic email script?

Hey people,
On a site I own I have a basic form that is emailed to me when completed, below is the php script behind it, I want to add a single attatchment box so files such as word documents, pdf's, text files can be attatched, I have already added the file upload input to the html form but do not know what needs adding to the script inorder for it to be sent along with the email as an attatchment, I have named the new input 'fileatt', any help?

Cheers

PHP Code:
<?php

   $company 
$_POST['company'];
   
$name $_POST['name'];
   
$number $_POST['number'];
   
$email $_POST['email'];
   
   
$invoice $_POST['invoice'];
   
$delivery $_POST['delivery'];
   
$comments $_POST['comments'];
   
$order1qty $_POST['order1qty'];
    
$order2qty $_POST['order2qty'];
    
$order3qty $_POST['order3qty'];
    
$order4qty $_POST['order4qty'];
    
$order5qty $_POST['order5qty'];
    
$order6qty $_POST['order6qty'];
             
    
$order1 $_POST['order1'];
    
$order2 $_POST['order2'];
    
$order3 $_POST['order3'];
    
$order4 $_POST['order4'];
    
$order5 $_POST['order5'];
    
$order6 $_POST['order6'];

// Contact subject
$subject ="Redlands Print Website Order";
// Details
$message="
        Company: "
.$_POST['company']."\n
        Contact Name: "
.$name."\n
        Contact Number: "
.$number."\n
        Email Address: "
.$email."\n
        Invoice Address: "
.$invoice."\n
        Delivery Address: "
.$delivery."\n\n
        ----------------------------------------
        Order:
        ----------------------------------------\n\n
             "
.$order1." x ".$order1qty."\n
             "
.$order2." x ".$order2qty."\n
             "
.$order3." x ".$order3qty."\n
             "
.$order4." x ".$order4qty."\n
             "
.$order5." x ".$order5qty."\n
             "
.$order6." x ".$order6qty."\n\n
        ----------------------------------------
             Comments:\n"
.$comments."";

// Mail of sender
$mail_from="$email";
// From 
$header="from: Website Order: $company <$mail_from>";

// Enter your email address
$to ='enquiries@redlands-print.co.uk';

$send_contact=mail($to,$subject,$message,$header);

// Check, if message sent to your email
// display message "We've received your information"
if($send_contact){
echo 
"<script>alert('We have received your order, to complete the process please proceed to pay for your order.');</script>";
} else {
  echo 
"<script>alert('Sorry there seems to be a problem with our site, Please try again later');window.history.back();</script>";
}


     
?>
Reply With Quote
  #2  
Old 06-18-2009
gorda001's Avatar
This user is deprecated.
 
Join Date: Jun 2005
Location: <0x79a3f6>
Posts: 5,065
Rep Power: 10
gorda001 is on a distinguished road
Re: Adding attatchment facility to basic email script?

This set of tutorials goes into detail about how to send emails with attachments using PHP:
Part 1
Reply With Quote
  #3  
Old 06-20-2009
Toddler
 
Join Date: Nov 2008
Location: West Midlands, UK
Age: 19
Posts: 19
Rep Power: 0
Asher is on a distinguished road
Re: Adding attatchment facility to basic email script?

Ok, Im nearly there, I just have one problem, The file attatchment path isnt uploaded directly from the page before, it is passed over a page using a hidden input value which is then set at $fileatt = $_POST['fileatt']; , how do I set the file att when the script is two pages after the upload box, the script is as follows.

PHP Code:
<?php

   $company 
$_POST['company'];
   
$name $_POST['name'];
   
$number $_POST['number'];
   
$email $_POST['email'];
   
   
$invoice $_POST['invoice'];
   
$delivery $_POST['delivery'];
   
$comments $_POST['comments'];
   
$order1qty $_POST['order1qty'];
    
$order2qty $_POST['order2qty'];
    
$order3qty $_POST['order3qty'];
    
$order4qty $_POST['order4qty'];
    
$order5qty $_POST['order5qty'];
    
$order6qty $_POST['order6qty'];
             
    
$order1 $_POST['order1'];
    
$order2 $_POST['order2'];
    
$order3 $_POST['order3'];
    
$order4 $_POST['order4'];
    
$order5 $_POST['order5'];
    
$order6 $_POST['order6'];
    
    
$A1 $_POST['A1'];
    
$B1 $_POST['B1'];
    
$C1 $_POST['C1'];
    
$D1 $_POST['D1'];
    
$E1 $_POST['E1'];
    
$F1 $_POST['F1'];
    
    
$fileatt $_POST['fileatt']; 
    


// Read POST request params into global vars
$to      "enquiries@redlands-print.co.uk";
$from    "".$email."";
$subject "Redlands Website Order";
$message "
        Company: "
.$_POST['company']."\n
        Contact Name: "
.$name."\n
        Contact Number: "
.$number."\n
        Email Address: "
.$email."\n
        Invoice Address: "
.$invoice."\n
        Delivery Address: "
.$delivery."\n
        ----------------------------------------
        Order:
        ----------------------------------------
        "
.$order1."  ".$order1qty."\n
        "
.$order2."  ".$order2qty."\n
        "
.$order3."  ".$order3qty."\n
        "
.$order4."  ".$order4qty."\n
        "
.$order5."  ".$order5qty."\n
        "
.$order6."  ".$order6qty."
        ----------------------------------------
        Comments:"
.$comments."";

// Obtain file upload vars
$fileatt      $_FILES['fileatt']['tmp_name'];
$fileatt_type $_FILES['fileatt']['type'];
$fileatt_name $_FILES['fileatt']['name'];

$headers "From: $from";

if (
is_uploaded_file($fileatt)) {
  
// Read the file to be attached ('rb' = read binary)
  
$file fopen($fileatt,'rb');
  
$data fread($file,filesize($fileatt));
  
fclose($file);

  
// Generate a boundary string
  
$semi_rand md5(time());
  
$mime_boundary "==Multipart_Boundary_x{$semi_rand}x";
  
  
// Add the headers for a file attachment
  
$headers .= "\nMIME-Version: 1.0\n" .
              
"Content-Type: multipart/mixed;\n" .
              
" boundary=\"{$mime_boundary}\"";

  
// Add a multipart boundary above the plain message
  
$message "This is a multi-part message in MIME format.\n\n" .
             
"--{$mime_boundary}\n" .
             
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
             
"Content-Transfer-Encoding: 7bit\n\n" .
             
$message "\n\n";

  
// Base64 encode the file data
  
$data chunk_split(base64_encode($data));

  
// Add file attachment to the message
  
$message .= "--{$mime_boundary}\n" .
              
"Content-Type: {$fileatt_type};\n" .
              
" name=\"{$fileatt_name}\"\n" .
              
//"Content-Disposition: attachment;\n" .
              //" filename=\"{$fileatt_name}\"\n" .
              
"Content-Transfer-Encoding: base64\n\n" .
              
$data "\n\n" .
              
"--{$mime_boundary}--\n";
}

// Send the message
$ok = @mail($to$subject$message$headers);
if (
$ok) {
 echo 
"<script>alert('We have received your order, to complete the process please proceed to pay for your order.');</script>";
} else {
  echo 
"<script>alert('Sorry there seems to be a problem with our site, Please try again later');window.history.back();</script>";
}
?>
Reply With Quote
  #4  
Old 06-20-2009
darkecho's Avatar
official undercover guy
 
Join Date: Aug 2005
Location: Michigan... USA
Age: 21
Posts: 2,593
Rep Power: 7
darkecho is on a distinguished road
Re: Adding attatchment facility to basic email script?

You might look at moving the file to an accessible folder from the file attach page. Then, use a session or something to "remember" the files name, so when you get to the part where you send the email, you can pull the file.
Reply With Quote


Reply

Tags
email form, php email, php email attatchment


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Tutorial: Create a simple login script using ASP.NET bfsog .Net Programming 0 09-24-2008 05:07 AM
Shopping Cart Script - BASIC Gilligan PHP Scripting 4 02-13-2008 11:49 AM
[ANN] New script engine (Basic sintax) MKTMK C and C++ Programming 0 08-31-2005 06:04 AM