Всем привет! Помогите разобраться с прикреплением файлов. Пыталась найти ответ в интернете, но толком ничего не нашла. Письмо приходит нормально, но только текст. Пробовала разные варианты... Нужно, чтобы приходили прикреплённые файлы. В обработчике формы, который представлен ничего не прописывала, так как делаю что-то неправильно и выдаёт ошибку (только что касается текстового содержимого). Что посоветуете? Форма: PHP: <div id="form"> <form action="mail_form" method="post" enctype="multipart/form-data" > <p>Имя:</p><input name="name" type="text" required /> <p>Ваша почта:</p><input name="email" type="text" required /> <p>Тема:</p><input name="tema" type="text" required /> <p>Ваш вопрос:</p><textarea name="question" required></textarea> <p>Прикрепить файл:</p><input name="files[]" type="file" multiple="" /> <br /> <input type="submit" value="отправить" /> </form> </div> mail_form.php: <?php $my_email = "test@mail.ru"; $path_log = "log.txt"; $time_back = 3; function error_msg($message){ $message = "<h2 style='color: red;text-shadow: -1px -1px 1px #fff, 2px 2px 1px #fff font-size: 60px; margin-top: 120px;'>".$message."</h2>"; return $message; } function success_msg($message){ $message = "<h2 style='color: #2d2d2d;text-shadow: -1px -1px 1px #fff, 2px 2px 1px #fff font-size: 60px; margin-top: 120px;'>".$message."</h2>"; return $message; } function clear_data($var){ return trim(strip_tags($var)); } function send_mail($email, $subj, $text, $from){ $headers = "From: ".$from." \r\n"; $headers .= "MIME-Version: 1.0\r\n"; $headers .= "Content-Type: text/html; charset=utf-8 \r\n"; $result = mail($email, $subj, $text, $headers); if(!$result){ return false; } return true; } function check_format($data, $type){ switch($type){ case "email": $pattern = "/^[a-z0-9_][a-z0-9\._-]*@([a-z0-9]+([a-z0-9-]*[a-z0-9]+)*\.)+[a-z]+$/i"; if(preg_match($pattern, $data)){ return true; } break; } return false; } // Узнаём предыдущую страницу $prev_page = $_SERVER["HTTP_REFERER"]; // Наши сообщения $msg = ""; // Статус письма $status_email = ""; header("Content-Type: text/html; charset=utf-8"); if($_SERVER["REQUEST_METHOD"] == "POST"){ if(isset($_POST["name"], $_POST["email"], $_POST["question"])){ $name = clear_data($_POST["name"]); $email = clear_data($_POST["email"]); $question = clear_data($_POST["question"]); if(check_format($email, "email") && !empty($question)){ $e_title = "Новое сообщение с сайта adonis-spb.com"; $e_body = "<html>"; $e_body .= "<body>"; $e_body .= "Имя: ".$name; $e_body .= "<br />"; $e_body .= "Почта: ".$email; $e_body .= "<br />"; $e_body .= "Сообщение: ".$question; $e_body .= "</body>"; $e_body .= "</html>"; // END Формируем письмо if(send_mail($my_email, $e_title, $e_body, $prev_page)){ $status_email = "success"; $msg = success_msg("Спасибо!.<br />Мы ответим вам в ближайшее время."); }else{ $status_email = "error"; $msg = error_msg("При отправке письма произошла ошибка."); } // Записываем в файл $str = "Время: ".date("d-m-Y G:i:s")."\n\r"; $str .= "Имя: ".$name."\n\r"; $str .= "Почта: ".$email."\n\r"; $str .= "Вопрос: ".$question."\n\r"; $str .= "Письмо: ".$status_email."\n\r"; $str .= "==========================\n\r"; file_put_contents($path_log, $str, FILE_APPEND); }else{ $msg = error_msg("Заполните форму правильно!"); } }else{ $msg = error_msg("Произошла ошибка!"); } }else{ exit; } ?>
Путь у меня задан правильно... Сообщения доходят нормально. Мне важно понять, как сделать так, чтобы файлы приходили сразу на почту. Пробовала разные варианты. Либо перестает работать форма, либо приходит файл, который не открывается....
ошибку покажи --- Добавлено --- неправильно --- Добавлено --- у тебя тут вообще не прикрепляются файлы https://github.com/PHPMailer/PHPMailer
Я знаю, что сейчас файлы у меня не прикрепляются вообще никак. Я об этом написала.... Я запуталась....
https://github.com/PHPMailer/PHPMailer --- Добавлено --- PHP: //Attachments $mail->addAttachment('/var/tmp/file.tar.gz'); // Add attachments $mail->addAttachment('/tmp/image.jpg', 'new.jpg'); // Optional name