954,568 Members — Technology Publication meets Social Media
Username:
Password:
Lost login information?
Have something to say? Contribute New Article Reply to this Article

Serious problem with attchments-please help

I Have visited a dozen of websites and registered with them but still none of them has helped me with my problem. I got a php script that i created that sends the results to a specific email address but the problem is that the attachments are not still working after countless attempts. THE ATTACHEDFILES DONT APPEAR IN THE MAIL.
SOME BODY PLEASE HELP ME .....................I REALLY NEED HELP AS SOON AS POSSIBLE.
HERE IS MY CODE PLEASE HELP WHERE HAVE GONE WRONG IN THE ATTACHMENTS PARTS.

<?php
$firstname = $_POST['FirstName'];
$lastname = $_POST['LastName'];
$day = $_POST['Day'];
$month = $_POST['Month'];
$year = $_POST['Year'];
$Gender = $_POST['Gender'];
$country = $_POST['country'];
$Province = $_POST['Province'];
$CityTown = $_POST['CityTown'];
$emailaddress = $_POST['EmailAddress'];

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

$lookingfor = $_POST['LookingFor'];
$interestedin = $_POST['InterestedIn'];
$Duration = $_POST['Duration'];
$tnc_agree = $_POST['tnc_agree'];
	
$to = "ContiAds! <'datingavenue@contiads.co.za''mvity@yahoo.com'>";
$subject = "RE: New Dating Avenue SignUp!";
$body = "<html>".
	"<head>".
	"<title>Contact Request</title>".
	"<style type='text/css'>".
	"body,td,th {".
		"font-family: Geneva, Arial, Helvetica, sans-serif;".
		"font-size: 12px;".
	"}".
	".style1 {font-size: 24px}".
	"</style></head>".
	"<body>".
	"<p align='center' class='style1'>ContiAds New Signup</p>".
	"<table width='498' border='0' align='center' cellpadding='5' cellspacing='0'>".
	  "<tr>".
		"<td colspan='2' valign='top' bgcolor='#333333' height='2px'></td>".
	  "</tr>".
	  "<tr>".
		"<td width='104' valign='top'>Full Name:</td>".
		"<td width='374'>".$firstname." ".$lastname."</td>".
	 "</tr>".
	  "<tr>".
		"<td valign='top'>Date:</td>".
		"<td>".$Date."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Month:</td>".
		"<td>".$month."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Year:</td>".
		"<td>".$year."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Gender:</td>".
		"<td>".$Gender."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Country:</td>".
		"<td>".$Country."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Province:</td>".
		"<td>".$Province."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Email Address:</td>".
		"<td>".$EmailAddress."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Looking For:</td>".
		"<td>".$lookingfor."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Interested In:</td>".
		"<td>".$InterestedIn."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Duration:</td>".
		"<td>".$Duration."</td>".
	  "</tr>".
	  "<tr>".
		"<td colspan='2' valign='top' bgcolor='#333333' height='2px'></td>".
	  "</tr>".
	"</table>".
	"</body>".
	"</html>";

//Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: ' . $email . "\r\n";
//$headers .= 'Cc: [email]myboss@example.com[/email]' . "\r\n";

if (mail($to, $subject, $body, $headers)) {
?>
<script language="javascript" type="text/javascript">
	location.replace("Sign%20Up%20Success.htm");
</script>
<?php
} else {
?>
<script language="javascript" type="text/javascript">
	location.replace("Sign%20Up%20Failure.htm");
</script>
<?php
}

?>
Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

I dont see anywhere in your script where the values for the following variables are set:

$mime_boundary
$fileatt_type
$picture_name
$fileatt_name


It wont work if the values are empty.


Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

Hi there

COULD YOU PLEASE HELP ME ON HOW YOU GO ABOUT DOING THAT AND FIXING THE PROBLEM BECAUSE AT THE PRESENT MOMENT I AM LOST AND VERY VERY CONFUSED!

Regards

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Perhaps if you attach your form we can do something.


Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

Should it be a screen shot or web file.......? You could see it on www.contiads.co.za/Entertainment main/ dating avenue / dating avenue sign up

its one of the forms of three i have the same problem with on the site.

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

You can attach a file using the paper clip icon you can see when replying to a post.


Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

I attached the screen shot to word document hope you able use it.
I don't know if this will also be helpful to you but here is the url address:

http://www.contiads.co.za/Ezone/Dating%20Avenue/Dating%20Avenue%20sign%20up.htm

regards

Attachments Doc1.doc (134KB)
Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Somebody please help me please please, i'm under a whole load stress and pressure do to this thing....... please help with this attachment problems

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Its impossible without seeing your form - the link in your 3rd post is dead. The actual files would be much better.


Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

Please try the one on the 7th post...... Or http://www.contiads.co.za/Ezone/Dati...Osign%Up.htm ....... But the one on the 7th post is more trustworthy.

Regards

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

datingavenue.php is the file we need to see.

Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

HERE IS ALL THE CONTENT THAT IS IN THE DATINGAVENUE.PHP FILE.............................................HOPE ITS HELPFUL

<?php
$firstname = $_POST['FirstName'];
$lastname = $_POST['LastName'];
$day = $_POST['Day'];
$month = $_POST['Month'];
$year = $_POST['Year'];
$Gender = $_POST['Gender'];
$country = $_POST['country'];
$Province = $_POST['Province'];
$CityTown = $_POST['CityTown'];
$emailaddress = $_POST['EmailAddress'];

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

$lookingfor = $_POST['LookingFor'];
$interestedin = $_POST['InterestedIn'];
$Duration = $_POST['Duration'];
$tnc_agree = $_POST['tnc_agree'];

$to = "ContiAds! <'datingavenue@contiads.co.za''mvity@yahoo.com'>";
$subject = "RE: New Dating Avenue SignUp!";
$body = "<html>".
"<head>".
"<title>Contact Request</title>".
"<style type='text/css'>".
"body,td,th {".
"font-family: Geneva, Arial, Helvetica, sans-serif;".
"font-size: 12px;".
"}".
".style1 {font-size: 24px}".
"</style></head>".
"<body>".
"<p align='center' class='style1'>ContiAds New Signup</p>".
"<table width='498' border='0' align='center' cellpadding='5' cellspacing='0'>".
"<tr>".
"<td colspan='2' valign='top' bgcolor='#333333' height='2px'></td>".
"</tr>".
"<tr>".
"<td width='104' valign='top'>Full Name:</td>".
"<td width='374'>".$firstname." ".$lastname."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Date:</td>".
"<td>".$Date."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Month:</td>".
"<td>".$month."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Year:</td>".
"<td>".$year."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Gender:</td>".
"<td>".$Gender."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Country:</td>".
"<td>".$Country."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Province:</td>".
"<td>".$Province."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Email Address:</td>".
"<td>".$EmailAddress."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Looking For:</td>".
"<td>".$lookingfor."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Interested In:</td>".
"<td>".$InterestedIn."</td>".
"</tr>".
"<tr>".
"<td valign='top'>Duration:</td>".
"<td>".$Duration."</td>".
"</tr>".
"<tr>".
"<td colspan='2' valign='top' bgcolor='#333333' height='2px'></td>".
"</tr>".
"</table>".
"</body>".
"</html>";

//Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=iso-8859-1" . "\r\n";
$headers .= 'From: ' . $email . "\r\n";
//$headers .= 'Cc: [email]myboss@example.com[/email]' . "\r\n";

if (mail($to, $subject, $body, $headers)) {
?>
<script language="javascript" type="text/javascript">
location.replace("Sign%20Up%20Success.htm");
</script>
<?php
} else {
?>
<script language="javascript" type="text/javascript">
location.replace("Sign%20Up%20Failure.htm");
</script>
<?php
}

?>
Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Sorry for the inconvienc i caused. Could you please show me how or give me an example how the brackets should be placed on the codes

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Good day

I have attached the datingavenue.php file. i hope you can help me sort out the problem i'm having with uploading files.

regards

Attachments datingavenue.php (3.15KB)
Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

Something like this:

$path = '/home/suomedia/public_html/user_images/';  // the path to upload images (must be writable)
$filepath = $path . basename( $_FILES['Picture']['name']) ;
$len = strlen($_FILES['Picture']['name']) - 4;
$extension = substr($_FILES['Picture']['name'],$len);  // get the file extension
$permitted = array('.jpg', '.JPG', '.PNG', '.png', '.GIF', '.gif');  // only alow these file extensions
$success = false;
if (in_array($extension, $permitted)) {
  if(move_uploaded_file($_FILES['Picture']['tmp_name'], $filepath)) {
    $success = true;
    $fileatt_type = 'image/' . $extension;
    $picture_name = $_FILES['Picture']['name'];
    $file = fopen( $filepath, 'rb' ); 
    $data = fread( $file, filesize( $filepath ) ); 
    fclose( $file );
    $data = chunk_split( base64_encode( $data ) );
    $rand = md5( time() );  
    $mime_boundary = '==Multipart_Boundary_x{$rand}x';        
  } else {
    $success = false;
  }
} else {
  $success = false;
}
// Add file attachment to the message 
 $message .= "--{$mime_boundary}\n" . 
             "Content-Type: {$fileatt_type};\n" . 
             " name=\"{$picture_name}\"\n" . 
             "Content-Disposition: attachment;\n" . 
             " filename=\"{$picture_name}\"\n" . 
             "Content-Transfer-Encoding: base64\n\n" . 
             $data . "\n\n" . 
             "--{$mime_boundary}--\n";


$path must be a path on your server to a writable directory.

You also need to sanitize all user input from your form and decide what to do if $success = false.


Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

Thanks alot

i got a couple of questions i would like to ask like:

1.what you meant by sanitize my input?

2.can i just put the code the way it is but change the path with the rest of the php?

3. Can i change the path and direct it to an email address and do i go about doing so ( an example would help )

4.if i have a number of uploaders in a form ( three maybe ) do i need to put the code three times.

Hope its not a problem with me asking alot of questions in order to understand a pit more?!!!!!!!!!!!!!!!!!!!!!!

regards

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

No problem you asking questions, thats what this forum is for. My apologies for being too busy to reply earlier - I tried to edit my last post but it would not let me.

Here is your file corrected:

<?php

$firstname = $_POST['FirstName'];
$lastname = $_POST['Lastname'];
$date = $_POST['Date'];
$month = $_POST['Months'];
$year = $_POST['Year'];
$Gender = $_POST['Gender'];
$country = $_POST['Country'];
$Province = $_POST['ProvinceStateRegion'];
$CityTown = $_POST['CityTown'];
$emailaddress = $_POST['EmailAddess'];
$lookingfor = $_POST['LookingFor'];
$interestedin = $_POST['InterestedIn'];
$Duration = $_POST['Duration'];
$tnc_agree = $_POST['tnc_agree'];
	
$to = "ContiAds! <you@your_domain.com>"; // put here the email address you want this sent to
$subject = "New ContiAds SignUp!";
$body = "<html>".
	"<head>".
	"<title>Contact Request</title>".
	"<style type='text/css'>".
	"body,td,th {".
		"font-family: Geneva, Arial, Helvetica, sans-serif;".
		"font-size: 12px;".
	"}".
	".style1 {font-size: 24px}".
	"</style></head>".
	"<body>".
	"<p align='center' class='style1'>ContiAds New Signup</p>".
	"<table width='498' border='0' align='center' cellpadding='5' cellspacing='0'>".
	  "<tr>".
		"<td colspan='2' valign='top' bgcolor='#333333' height='2px'></td>".
	  "</tr>".
	  "<tr>".
		"<td width='104' valign='top'>Full Name:</td>".
		"<td width='374'>".$firstname." ".$lastname."</td>".
	 "</tr>".
	  "<tr>".
		"<td valign='top'>Date:</td>".
		"<td>".$date."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Month:</td>".
		"<td>".$month."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Year:</td>".
		"<td>".$year."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Gender:</td>".
		"<td>".$Gender."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Country:</td>".
		"<td>".$country."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Province:</td>".
		"<td>".$Province."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Email Address:</td>".
		"<td>".$emailaddress."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Looking For:</td>".
		"<td>".$lookingfor."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Interested In:</td>".
		"<td>".$interestedin."</td>".
	  "</tr>".
	  "<tr>".
		"<td valign='top'>Duration:</td>".
		"<td>".$Duration."</td>".
	  "</tr>".
	  "<tr>".
		"<td colspan='2' valign='top' bgcolor='#333333' height='2px'></td>".
	  "</tr>".
	"</table>".
	"</body>".
	"</html>";
	
//Always set content-type when sending HTML email
$rand = md5( time() );  
$mime_boundary = '==Multipart_Boundary_' . $rand;
$headers = "From: " . $emailaddress . "\n" .
"Reply-To:" . $emailaddress . "\n" .
"MIME-Version: 1.0\n" . 
"Content-Type: multipart/mixed; boundary=\"" . $mime_boundary . "\"";
"\n\n";	

 $message = "This is a multi-part message in MIME format.\n\n" . 
                "--" . $mime_boundary . "\n" . 
                "Content-Type: text/html; charset=\"iso-8859-1\"\n" . 
                "Content-Transfer-Encoding: 7bit\n\n" .
                $body . "\n\n";
// Add file attachment to the message 

$path = '/home/suomedia/public_html/images/';  // the path to upload images (must be writable)
$filepath = $path . basename( $_FILES['Picture']['name']);
$len = strlen($_FILES['Picture']['name']) - 4;
$extension = substr($_FILES['Picture']['name'],$len);  // get the file extension
$permitted = array('.jpg', '.JPG', '.PNG', '.png', '.GIF', '.gif');  // only allow these file extensions
$success = false;
if (in_array($extension, $permitted)) {
  if(move_uploaded_file($_FILES['Picture']['tmp_name'], $filepath)) {
    $success = true;
    $fileatt_type = 'image/' . strtoupper(ltrim($extension, '.'));
    $picture_name = $_FILES['Picture']['name'];
    $file = fopen( $filepath, 'rb' ); 
    $data = fread( $file, filesize( $filepath ) ); 
    fclose( $file );
    $data = chunk_split( base64_encode( $data ) );
    $message .= "--" . $mime_boundary . "\n" . 
             "Content-Type: \"" . $fileatt_type . "\";\n" . 
             " name=\"" . $picture_name . "\"\n" . 
             "Content-Disposition: attachment;\n" . 
             " filename=\"" . $picture_name . "\"\n" . 
             "Content-Transfer-Encoding: base64\n\n" . 
             $data . "\n\n" . 
             "--" . $mime_boundary . "--\n";            
  } else {
    $success = false;
  }
} else {
  $success = false;
}                

// end file attachment

if($success == true) {
if (mail($to, $subject, $message, $headers)) {
?>
<script language="javascript" type="text/javascript">
	location.replace("Sign%20Up%20Success.htm");
</script>
<?php
} else {
?>
<script language="javascript" type="text/javascript">
	location.replace("Sign%20Up%20Failure.htm");
</script>
<?php
}
} else {
?>
<script language="javascript" type="text/javascript">
	location.replace("Sign%20Up%20Failure.htm");
</script>
<?php
}
?>


$path must be set to a file system path on your server where you want the images uploaded. The directory must have 777 permissions (writeable).

You should also try to follow the coding conventions in the above code, particularly when $variables are used within text content. You should also be aware that variables are case sensitive (including $_POST variables). It is good practice to keep all of these lower case (I have not corrected yours other than where you had upper case in one place and lower case elsewhere (please check your other file also). Put your correct email address above where I have left a comment.

Sanitizing user input means stripping the posted data from anything that may be malicious, eg. you email is sent in HTML format - I could quite easily post a malicious script to you that would execute when you open the email. Search Google for input filtering.

Yes, you need to add the file handling each time you add an attachment.


Matti Ressler
Suomedia

Suomedia
Junior Poster
158 posts since Mar 2008
Reputation Points: 15
Solved Threads: 19
 

Na its all good, you also probably have a personal life you need to attend to.

I would like ask something, how do you go about sanitizing.... I'm not familiar with it ?!

Regards

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 
Sanitizing user input means stripping the posted data from anything that may be malicious

You can use mysql_real_escape_string for the user input or addslashes.

nav33n
Purple hazed!
Moderator
4,465 posts since Nov 2007
Reputation Points: 524
Solved Threads: 356
 

How do i link the attachment script with the up loader on the form....... Where i place the uploader name on the script ?

Vity
Light Poster
26 posts since Mar 2008
Reputation Points: 10
Solved Threads: 0
 

This article has been dead for over three months

Post: Markdown Syntax: Formatting Help
You