Any experts out there on PHP? I am trying to merge the following php code (#2) with my existing php code (#1) so that it I can attach and send multiple files. I've got it so I can attach and send files, no problem, but the form verification and anti-bot test no longer works. I realize there might be some redundancies in the two php codes. I have removed, replaced and tried combining code multiple times, but to no avail. Also the code in #2 returns a blank page saying "Message sent" or "Failed to send" when I prefer what I already have in code #1 with the message appearing in a div over top of the page. Any guidance without starting from scratch with php mailers, etc, would be very appreciated. It's probably something simple for those of you well-versed in PHP. Thanks! Dave PHP #1 (No file attachment, but form verification and anti-bot test): <?php // NOTE: this page must be saved as a .php file. // And your server must support PHP 5.3+ PHP Mail(). // Define variables and set to empty values $result = $message = $human = ""; $errName = $errMessage = $errHuman = ""; if ( isset( $_POST[ "submit" ] ) ) { $message = $_POST[ 'message' ]; $human = intval( $_POST[ 'human' ] ); //valid address on your web server $from = 'me@myemail.com'; //your email address where you wish to receive mail $to = 'me@myemail.com'; $subject = 'MESSAGE FROM YOUR WEB SITE'; $headers = "From:$from\r\nReply-to:$email"; $body = "Message: $message"; //Check if message is entered if ( empty( $_POST[ "message" ] ) ) { $errMessage = "Please enter your message."; } else { $message = test_input( $_POST[ "message" ] ); } //Check if simple anti-bot test is entered if ( empty( $_POST[ "human" ] ) ) { $errHuman = "Please enter the sum."; } else { if ( $human !== 1001 ) { $errHuman = 'Wrong answer. Please try again.'; } } // If there are no errors, send the email & output results to the form if ( !$errMessage && !$errHuman ) { if ( mail( $to, $subject, $body, $from ) ) { $result = '<div class="alert alert-success"><h2><span class="glyphicon glyphicon-ok"></span> Message sent!</h2><h3>Thank you for contacting us. Someone will be in touch with you soon.</h3></div>'; } else { $result = '<div class="alert alert-danger"><h2><span class="glyphicon glyphicon-warning-sign"></span> Sorry there was a form processing error.</h2> <h3>Please try again later.</h3></div>'; } } } //sanitize data inputs function test_input( $data ) { $data = trim( $data ); $data = stripslashes( $data ); $data = htmlspecialchars( $data ); $data = ( filter_var( $data, FILTER_SANITIZE_STRING ) ); return $data; } //end form processing script ?> PHP #2 (Multiple file attachment): <?php if ($_SERVER['REQUEST_METHOD']=="POST"){ // we'll begin by assigning the To address and message subject $to="me@myemail.com"; $subject="E-mail with attachment"; // get the sender's name and email address // we'll just plug them a variable to be used later $from = stripslashes($_POST['fromname'])."<".stripslashes($_POST['fromemail']).">"; // generate a random string to be used as the boundary marker $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; // now we'll build the message headers $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\""; // here, we'll start the message body. // this is the text that will be displayed // in the e-mail $message="This is an example"; $message .= "Name:".$_POST["fromname"]."Message Posted:".$_POST["modlist"]; // next, we'll build the invisible portion of the message body // note that we insert two dashes in front of the MIME boundary // when we use it $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"; // now we'll process our uploaded files foreach($_FILES as $userfile){ // store the file information to variables for easier access $tmp_name = $userfile['tmp_name']; $type = $userfile['type']; $name = $userfile['name']; $size = $userfile['size']; // if the upload succeded, the file will exist if (file_exists($tmp_name)){ // check to make sure that it is an uploaded file and not a system file if(is_uploaded_file($tmp_name)){ // open the file for a binary read $file = fopen($tmp_name,'rb'); // read the file content into a variable $data = fread($file,filesize($tmp_name)); // close the file fclose($file); // now we encode it and split it into acceptable length lines $data = chunk_split(base64_encode($data)); } // now we'll insert a boundary to indicate we're starting the attachment // we have to specify the content type, file name, and disposition as // an attachment, then add the file content. // NOTE: we don't set another boundary to indicate that the end of the // file has been reached here. we only want one boundary between each file // we'll add the final one after the loop finishes. $message .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Disposition: attachment;\n" . " filename=\"{$fileatt_name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; } } // here's our closing mime boundary that indicates the last of the message $message.="--{$mime_boundary}--\n"; // now we just send the message if (@mail($to, $subject, $message, $headers)) echo "Message Sent"; else echo "Failed to send"; } else { ?> html: <!--begin HTML Form--> <form role="form" method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> <!--when submit button is clicked, show results here--> <div class="form-group"> <?php echo $result;?> </div> <div class="form-group"> <textarea class="form-control" rows="3" name="message" requiredplaceholder="What's new?"><?php echo $message;?></textarea> <span class="required small"><?php echo $errMessage;?></span> </div> <div class="form-group"> <div class="col-sm-4"> File: <input type="file" name="file1"> </div> <div class="col-sm-4"> File: <input type="file" name="file2"> </div> <div class="col-sm-4"> File: <input type="file" name="file3"> </div> <div class="col-sm-4"> File: <input type="file" name="file4"> </div> <div class="col-sm-4"> File: <input type="file" name="file5"> </div> <div class="col-sm-4"> File: <input type="file" name="file6"> </div> </div> <div class="form-group"> <div class="col-sm-4"> <h6 class="human">A number between 1 and 1,806,010</h6> <input type="text" class="form-control" id="human" name="human" placeholder="Your Answer" value="<?php echo $human;?>"> <span class="required small"><?php echo $errHuman;?></span><br> <button type="submit" id="submit" name="submit" class="btn btn-success">SUBMIT</button> <button type="reset" id="reset" name="reset" class="btn btn-success">RESET</button> </div> </div> </form> <!--end Form-->
... View more