TheScripter Posted September 30, 2012 Share Posted September 30, 2012 http://independentrepublicofursum.tk/Become_a_Citizen/ is the page I am having trouble on. Basically what I want to happen here is for the user to download a fillable pdf application, fill it, and upload it. From there the php script will send it to my email so I can review it. My code is... function mail_file($to, $from, $subject, $body, $file) { $boundary = md5(rand()); $header = array( "MIME-Version: 1.0", "Content-Type: multipart/mixed; boundary=\"{$boundary}\"", "From: {$from}" ); $message = array( "--{$boundary}", "Content-Type: text/plain", "Content-Transfer-Encoding: 7bit", '', chunk_split($body), "--{$Boundary}", "Content-Type: {$file['type']}; name=\"{$file['name']}\"", "Content-Disposition: attachment; filename=\"{$file['name']}\"", "Content-Transfer-Encoding: base64", '', chunk_split(base64_encode(file_get_contents($file['tmp_name']))), "--{$boundary}--" ); mail($to, $subject, implode("\r\n", $message), implode("\r\n", $headers)); } Then to send it I use... if (isset($_FILES['file'])) { mail_file('myemail@gmail.com', 'ContactUs@independentrepublicofursum.tk', 'test subject', '', $_FILES['file']); } My form is... <form name="citizenship_application" action="" method="post" enctype="multipart/form-data"> First Name: <input type="text" name="first_name" value="<?php echo $first_name_value; ?>"> <br /> <br /> Last Name: <input type="text" name="last_name" value="<?php echo $last_name_value; ?>"> <br /> <br /> E-Mail:       <input type="text" name="e_mail" value="<?php echo $e_mail_value; ?>"> <br /> <br /> Gender:       <input type="radio" name="sex" value="male" <?php echo $male_pre_select; ?> >Male <input type="radio" name="sex" value="female" <?php echo $female_pre_select; ?> >Female <br /> <br /> <label for="file">Please specify your application file:</label> <br /> <input type="hidden" name="MAX_FILE_SIZE" value="501"> <input type="file" name="file" size="50"> <br /> <br /> <input type="submit" value="Submit Application" name="submit">  <?php echo $error; ?> </form> I get two errors, the first one is... Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/u418744221/public_html/Become_a_Citizen/index.php on line 38 Line 38 is... chunk_split(base64_encode(file_get_contents($file['tmp_name']))), My second error is... Warning: implode() [function.implode]: Invalid arguments passed in /home/u418744221/public_html/Become_a_Citizen/index.php on line 43 line 43 is... mail($to, $subject, implode("\r\n", $message), implode("\r\n", $headers)); Really need this finished, ASAP. I can't figure it out, any help appreciated thanks ya'll. Quote Link to comment https://forums.phpfreaks.com/topic/268941-email-attachment-script-not-working/ Share on other sites More sharing options...
DavidAM Posted September 30, 2012 Share Posted September 30, 2012 Warning: file_get_contents() [function.file-get-contents]: Filename cannot be empty in /home/u418744221/public_html/Become_a_Citizen/index.php on line 38 Line 38 is... chunk_split(base64_encode(file_get_contents($file['tmp_name']))), That would mean that $_FILES['tmp_name'] is empty; which would imply that the upload failed. You really should check that ['error'] is zero (or UPLOAD_ERR_OK) before you assume that a file was actually and successfully uploaded. Suggested reading: PHP Manual - Handling File Uploads Warning: implode() [function.implode]: Invalid arguments passed in /home/u418744221/public_html/Become_a_Citizen/index.php on line 43 line 43 is... mail($to, $subject, implode("\r\n", $message), implode("\r\n", $headers)); The variable $headers does not exist in that code Quote Link to comment https://forums.phpfreaks.com/topic/268941-email-attachment-script-not-working/#findComment-1381987 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.