phpnewbieca Posted February 24, 2010 Share Posted February 24, 2010 The objective of the attached script should do 4 things: 1. Upload a file to the server [function FileUp ()]. 2. Display users input to the browser [function Sendmail_1()]. 3. Send an email with an attachment [function Sendmail_2()], if a file has been attached. 4. Send an email with out attachment [function Sendmail_3()] . The script will UPLOAD the file [function FileUp()], because it echos 'Success!'. It will not DISPLAY THE USERS INPUT TO THE BROWSER [function Sendmail_1. It will not attach the uploaded file to the email [function Sendmail_2]. Please tell me what I am doing wrong that prevents the script from displaying the users input to the browser and why it will not attached the uploaded file to the email. <?php // processess Sendmailform.html error_reporting(E_ALL); // Define variables $Date = date("F d, Y"); // Get Data From Form // validate expected data exists if(isset($_POST['Email'])){ $Email = $_POST['Email']; } if(isset($_POST['Email_2'])){ $Email_2 = $_POST['Email_2']; } if(isset($_POST['Subject'])){ $Subject = $_POST['Subject']; } if(isset($_POST['Text'])){ $Text = $_POST['Text']; } if(isset($_POST['Attachedfile'])){ $Attachedfile = $_POST['Attachedfile']; } // Call Function if(!isset($_POST['Attachedfile'])) { // Call Function FileUp(); Sendmail_2(); Sendmail_1(); } else { Sendmail_3(); Sendmail_1(); } // FUNCTIONS // Upload File function FileUp(){ global $Date, $Email, $Email_2, $Subject, $Text, $Attachedfile; $target_path = "/xxxx/xxxxxxxx/public_html/upload"; $target_path = $target_path . basename($_FILES['Attachedfile']['name']) ; $ok=1; //This is our size condition if ($Attachedfile > 2097152){ echo "Your file is too large.<br>"; $ok=0; } //This is our limit file type condition if ($Attachedfile == "text/php"){ echo "No PHP files<br>"; $ok=0; } if ($Attachedfile == "application/octet-stream"){ echo "No EXE files<br>"; $ok=0; } //Here we check that $ok was not set to 0 by an error if ($ok==0){ Echo "Sorry your file was not uploaded"; } //If everything is ok we try to upload it else{ if(move_uploaded_file($_FILES['Attachedfile']['tmp_name'], $target_path)){ echo "Success!"; } else{ echo "Sorry, there was a problem uploading your file."; } } } // FUNCTION function Sendmail_1() { global $Date, $Email, $Email_2, $Subject, $Text, $Attachedfile; // Print to Browser echo "<html>\n"; echo "<head>\n"; echo "<TITLE>Send Mail</title>\n"; echo "</head>\n"; echo "<BODY BGCOLOR='blue' TEXT='white'>\n"; echo "<table align='center'>\n"; echo "<tr>\n"; echo "<td>\n"; echo "<br /><br /><br /><br /><br /><br /><br /><br />\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<br />\n"; echo "<table width='600' align='center' border='15'>\n"; echo "<tr>\n"; echo "<th align='center' valign='center' colspan='1' width='600'>\n"; echo "<font size='+2'>\n"; echo "~ ~ ~ This is Email you sent ~ ~ ~\n"; echo "</font>\n"; echo "</th>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<table width='600' align='center' border='15'>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t To: $Email\n"; echo "<br />\n"; echo "\t (Recipient's Email Address)\n"; echo "</th>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t From: $Email_2\n"; echo "<br />\n"; echo "\t Sender's Email Address)\n"; echo "</th>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t Subject: $Subject\n"; echo "</th>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t Message: $Text\n"; echo "</th>\n"; echo "</tr>\n"; if(isset($_POST['Attachedfile'])) { echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t Attached File: " .basename( $_FILES['Attachedfile']['name']). "\n"; echo "<br />\n"; echo "</th>\n"; echo "</tr>\n"; } echo "</table>\n"; echo "<table width='600' Align='center'>\n"; echo " <tr>\n"; echo "<td width='600' Align='left'>\n"; echo "<br /><br />\n"; echo "Please visit us again <a href=\"http://www.horace-franklin-jr.com\">www.horace-franklin-jr.com</a>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</body>\n"; echo "</html>"; } // FUNCTION // Email with Attachment function Sendmail_3(){ global $Email, $Email_2, $Subject, $Text, $Attachedfile; $Attachedfile = basename( $_FILES['Uploadedfile']['name']); if($Attachedfile == basename( $_FILES['Attachedfile']['name'])){ // FUNCTION function died(){ global $Email, $Email_2, $Subject, $Text, $Attachedfile; // your error code can go here echo "These errors appear below.\n"; echo "<br /><br />\n"; echo "$error_message\n"; echo "<br /><br />\n"; echo "Please go back and fix these errors.\n"; echo "<br /><br />\n"; die(); } $error_message = ""; $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"; if(!eregi($email_exp,$Email)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(!eregi($email_exp,$Email_2)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(strlen($Text) < 2){ $error_message.= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0){ die($error_message); } //FUNCTION function clean_string($string){ $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $SendTo = "$Email"; $From = "$Email_2"; $Subject = "$Subject"; //supply the text and html versions of your email message $Text = "$Text\n"; $html = "$Text\n"; //provide path to the file to be attached $file = "/xxxx/xxxxxxxx/public_html/upload/$Attachedfile"; //create a boundary string. It must be unique //so we use the MD5 algorithm to generate a random hash $random_hash = md5(date('r',time())); //define the headers we want passed. Note that they are separated with \r\n $headers = "From: "."<"."$From".">"."\n"; $headers.= "Reply-To: "."<"."$From".">"; $headers.= "CC: "."<"."[email protected]".">"; //add boundary string and mime type specification $headers.= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-{$random_hash} \""; //read the atachment file contents into a string, //encode it with MIME base64, //and split it into smaller chunks $attachment = chunk_split(base64_encode(file_get_contents($file))); //define the body of the message. $body = "--PHP-mixed-{$random_hash}\r\n". "Content-Type: multipart/alternative; boundary=\"PHP-alt-{$random_hash}\"\r\n". "--PHP-alt-{$random_hash}\r\n"."Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"."Content-Transfer-Encoding: 7bit\r\n\r\n". "{$message}\r\n\r\n"."--PHP-alt-{$random_hash}\r\n\r\n". "Content-Type: text/html; charset=\"iso-8859-1\"\r\n". "Content-Transfer-Encoding: 7bit\r\n\r\n". "{$html}\r\n\r\n". "--PHP-alt-{$random_hash}--\r\n\r\n"."--PHP-mixed-{$random_hash}\r\n". "Content-Type: ".mime_content_type($file)."; name=\"". basename($file)."\"\r\n"."Content-Transfer-Encoding: base64\r\n". "Content-Disposition: attachment\r\n\r\n"."{$attachment}\r\n". "--PHP-mixed-{$random_hash}--\r\n\r\n"; //send the email $mail_sent = @mail($SendTo, $Subject, $body, $headers); if($mail_sent){ echo $mail_sent; } else{ echo "Email was not sent\n"; } } else { echo "Attachement not sent\n" } } // FUNCTION // Email with Out Attachment function Sendmail_3(){ global $Email, $Email_2, $Subject, $Text; // FUNCTION function died(){ global $Email, $Email_2, $Subject, $Text; // your error code can go here echo "These errors appear below.\n"; echo "<br /><br />\n"; echo "$error_message\n"; echo "<br /><br />\n"; echo "Please go back and fix these errors.\n"; echo "<br /><br />\n"; die(); } $error_message = ""; $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"; if(!eregi($email_exp,$Email)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(!eregi($email_exp,$Email_2)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(strlen($Text) < 2){ $error_message.= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0){ die($error_message); } //FUNCTION function clean_string($string){ $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $SendTo = "$Email\n"; $From = "$Email_2\n"; $Subject = "$Subject\n"; $email_message = "$Text\n"; // create email headers $headers = 'From: '.$Email_2."\r\n". 'Reply-To: '.$Email_2."\r\n" . 'X-Mailer: PHP/' . phpversion(); //send the email $mail_sent = @mail($SendTo, $Subject, $email_message, $headers); if($mail_sent){ echo $mail_sent; } else{ echo "Email was not sent\n"; } } ?> Link to comment https://forums.phpfreaks.com/topic/193169-send-email-from-server-with-attachment-no-attachment/ Share on other sites More sharing options...
phpnewbieca Posted February 24, 2010 Author Share Posted February 24, 2010 The attached script should do 4 things: 1. Upload a file to the server [function FileUp ()]. 2. Display users input to the browser [function Sendmail_1()]. 3. Send an email with an attachment [function Sendmail_2()], if a file has been attached. 4. Send an email with out attachment [function Sendmail_3()] . The script will UPLOAD the file [function FileUp()], because it echos 'Success!'. It will not DISPLAY THE USERS INPUT TO THE BROWSER [function Sendmail_1. It will not attach the uploaded file to the email [function Sendmail_2]. Please tell me what I am doing wrong that prevents the script from displaying the users input to the browser and why it will not attached the uploaded file to the email. <?php // processess Sendmailform.html error_reporting(E_ALL); // Define variables $Date = date("F d, Y"); // Get Data From Form // validate expected data exists if(isset($_POST['Email'])){ $Email = $_POST['Email']; } if(isset($_POST['Email_2'])){ $Email_2 = $_POST['Email_2']; } if(isset($_POST['Subject'])){ $Subject = $_POST['Subject']; } if(isset($_POST['Text'])){ $Text = $_POST['Text']; } if(isset($_POST['Attachedfile'])){ $Attachedfile = $_POST['Attachedfile']; } // Call Function if(!isset($_POST['Attachedfile'])) { // Call Function FileUp(); Sendmail_2(); Sendmail_1(); } else { Sendmail_3(); Sendmail_1(); } // FUNCTIONS // Upload File function FileUp(){ global $Date, $Email, $Email_2, $Subject, $Text, $Attachedfile; $target_path = "/xxxx/xxxxxxxx/public_html/upload"; $target_path = $target_path . basename($_FILES['Attachedfile']['name']) ; $ok=1; //This is our size condition if ($Attachedfile > 2097152){ echo "Your file is too large.<br>"; $ok=0; } //This is our limit file type condition if ($Attachedfile == "text/php"){ echo "No PHP files<br>"; $ok=0; } if ($Attachedfile == "application/octet-stream"){ echo "No EXE files<br>"; $ok=0; } //Here we check that $ok was not set to 0 by an error if ($ok==0){ Echo "Sorry your file was not uploaded"; } //If everything is ok we try to upload it else{ if(move_uploaded_file($_FILES['Attachedfile']['tmp_name'], $target_path)){ echo "Success!"; } else{ echo "Sorry, there was a problem uploading your file."; } } } // FUNCTION function Sendmail_1() { global $Date, $Email, $Email_2, $Subject, $Text, $Attachedfile; // Print to Browser echo "<html>\n"; echo "<head>\n"; echo "<TITLE>Send Mail</title>\n"; echo "</head>\n"; echo "<BODY BGCOLOR='blue' TEXT='white'>\n"; echo "<table align='center'>\n"; echo "<tr>\n"; echo "<td>\n"; echo "<br /><br /><br /><br /><br /><br /><br /><br />\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<br />\n"; echo "<table width='600' align='center' border='15'>\n"; echo "<tr>\n"; echo "<th align='center' valign='center' colspan='1' width='600'>\n"; echo "<font size='+2'>\n"; echo "~ ~ ~ This is Email you sent ~ ~ ~\n"; echo "</font>\n"; echo "</th>\n"; echo "</tr>\n"; echo "</table>\n"; echo "<table width='600' align='center' border='15'>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t To: $Email\n"; echo "<br />\n"; echo "\t (Recipient's Email Address)\n"; echo "</th>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t From: $Email_2\n"; echo "<br />\n"; echo "\t Sender's Email Address)\n"; echo "</th>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t Subject: $Subject\n"; echo "</th>\n"; echo "</tr>\n"; echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t Message: $Text\n"; echo "</th>\n"; echo "</tr>\n"; if(isset($_POST['Attachedfile'])) { echo "<tr>\n"; echo "<th align='right' valign='center' colspan='1' width='250'>\n"; echo "\t Attached File: " .basename( $_FILES['Attachedfile']['name']). "\n"; echo "<br />\n"; echo "</th>\n"; echo "</tr>\n"; } echo "</table>\n"; echo "<table width='600' Align='center'>\n"; echo " <tr>\n"; echo "<td width='600' Align='left'>\n"; echo "<br /><br />\n"; echo "Please visit us again <a href=\"http://www.horace-franklin-jr.com\">www.horace-franklin-jr.com</a>\n"; echo "</td>\n"; echo "</tr>\n"; echo "</table>\n"; echo "</body>\n"; echo "</html>"; } // FUNCTION // Email with Attachment function Sendmail_3(){ global $Email, $Email_2, $Subject, $Text, $Attachedfile; $Attachedfile = basename( $_FILES['Uploadedfile']['name']); if($Attachedfile == basename( $_FILES['Attachedfile']['name'])){ // FUNCTION function died(){ global $Email, $Email_2, $Subject, $Text, $Attachedfile; // your error code can go here echo "These errors appear below.\n"; echo "<br /><br />\n"; echo "$error_message\n"; echo "<br /><br />\n"; echo "Please go back and fix these errors.\n"; echo "<br /><br />\n"; die(); } $error_message = ""; $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"; if(!eregi($email_exp,$Email)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(!eregi($email_exp,$Email_2)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(strlen($Text) < 2){ $error_message.= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0){ die($error_message); } //FUNCTION function clean_string($string){ $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $SendTo = "$Email"; $From = "$Email_2"; $Subject = "$Subject"; //supply the text and html versions of your email message $Text = "$Text\n"; $html = "$Text\n"; //provide path to the file to be attached $file = "/xxxx/xxxxxxxx/public_html/upload/$Attachedfile"; //create a boundary string. It must be unique //so we use the MD5 algorithm to generate a random hash $random_hash = md5(date('r',time())); //define the headers we want passed. Note that they are separated with \r\n $headers = "From: "."<"."$From".">"."\n"; $headers.= "Reply-To: "."<"."$From".">"; $headers.= "CC: "."<"."[email protected]".">"; //add boundary string and mime type specification $headers.= "\r\nContent-Type: multipart/mixed; boundary=\"PHP-mixed-{$random_hash} \""; //read the atachment file contents into a string, //encode it with MIME base64, //and split it into smaller chunks $attachment = chunk_split(base64_encode(file_get_contents($file))); //define the body of the message. $body = "--PHP-mixed-{$random_hash}\r\n". "Content-Type: multipart/alternative; boundary=\"PHP-alt-{$random_hash}\"\r\n". "--PHP-alt-{$random_hash}\r\n"."Content-Type: text/plain; charset=\"iso-8859-1\"\r\n"."Content-Transfer-Encoding: 7bit\r\n\r\n". "{$message}\r\n\r\n"."--PHP-alt-{$random_hash}\r\n\r\n". "Content-Type: text/html; charset=\"iso-8859-1\"\r\n". "Content-Transfer-Encoding: 7bit\r\n\r\n". "{$html}\r\n\r\n". "--PHP-alt-{$random_hash}--\r\n\r\n"."--PHP-mixed-{$random_hash}\r\n". "Content-Type: ".mime_content_type($file)."; name=\"". basename($file)."\"\r\n"."Content-Transfer-Encoding: base64\r\n". "Content-Disposition: attachment\r\n\r\n"."{$attachment}\r\n". "--PHP-mixed-{$random_hash}--\r\n\r\n"; //send the email $mail_sent = @mail($SendTo, $Subject, $body, $headers); if($mail_sent){ echo $mail_sent; } else{ echo "Email was not sent\n"; } } else { echo "Attachement not sent\n" } } // FUNCTION // Email with Out Attachment function Sendmail_3(){ global $Email, $Email_2, $Subject, $Text; // FUNCTION function died(){ global $Email, $Email_2, $Subject, $Text; // your error code can go here echo "These errors appear below.\n"; echo "<br /><br />\n"; echo "$error_message\n"; echo "<br /><br />\n"; echo "Please go back and fix these errors.\n"; echo "<br /><br />\n"; die(); } $error_message = ""; $email_exp = "^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$"; if(!eregi($email_exp,$Email)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(!eregi($email_exp,$Email_2)){ $error_message.= 'The Email Address you entered does not appear to be valid.<br />'; } if(strlen($Text) < 2){ $error_message.= 'The Comments you entered do not appear to be valid.<br />'; } if(strlen($error_message) > 0){ die($error_message); } //FUNCTION function clean_string($string){ $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $SendTo = "$Email\n"; $From = "$Email_2\n"; $Subject = "$Subject\n"; $email_message = "$Text\n"; // create email headers $headers = 'From: '.$Email_2."\r\n". 'Reply-To: '.$Email_2."\r\n" . 'X-Mailer: PHP/' . phpversion(); //send the email $mail_sent = @mail($SendTo, $Subject, $email_message, $headers); if($mail_sent){ echo $mail_sent; } else{ echo "Email was not sent\n"; } } ?> Link to comment https://forums.phpfreaks.com/topic/193169-send-email-from-server-with-attachment-no-attachment/#findComment-1017200 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.