Показать сообщение отдельно
  #1 (permalink)  
Старый 07.04.2017, 12:47
Аспирант
Отправить личное сообщение для sergey24 Посмотреть профиль Найти все сообщения от sergey24
 
Регистрация: 04.11.2016
Сообщений: 56

Где проблема в скрипте?
<form id="formss1" method="POST" action="javascript:void(0);" onSubmit="ajaxsend_formss('1');" enctype="multipart/form-data">
            <input type="text" name="name" placeholder="" required/>
            <input type="text" name="asd" placeholder="" required/>
            <input type="text" name="rty" placeholder="" required/>
            <input type="text" name="hfg" placeholder="" required/>
            <input type="text" name="nvb" placeholder="" required/>
            <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
            <button type="submit">Оставить заявку на сайте</button>
        </form>


$(function(){
  $("#formss1").submit(function(evt){
      var $fileUpload = $("#fileFF");
      var http = new XMLHttpRequest();
      var f = $(this);
      if (parseInt($fileUpload.get(0).files.length) > 4) {
          alert("You can only upload a maximum of 4 files");
      } else {
          evt.preventDefault();
          http.open("POST", "mail2.php", true);
          location.href = "#callme1";
          http.onerror = function() {
              alert('Извините, данные не были переданы');
          }
          http.send(new FormData(f));
      }
  });    
});


<?php
  $to = "mail@mail.ru";
  $subject = "Заявка онлайн";
  $from ="От ".$_SERVER['HTTP_HOST'];
  $message = .$_POST['name'] .$_POST['dsa'] .$_POST['dsad'] .$_POST['dasd'] .$_POST['dasd'];
  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\r\n";
  $headers .= "From: " . $from . "\r\n";
  $headers .= "Reply-To: " . $from . "\r\n";
  $headers .= "Content-Type: multipart/mixed; boundary=\"$boundary\"\r\n";
  $message="
Content-Type: multipart/mixed; boundary=\"$boundary\"

--$boundary
Content-Type: text/plain; charset=\"utf-8\"
Content-Transfer-Encoding: 7bit

$message";
  for($i=0;$i<count($_FILES['fileFF']['name']);$i++) {
     if(is_uploaded_file($_FILES['fileFF']['tmp_name'][$i])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'][$i])));
         $filename = $_FILES['fileFF']['name'][$i];
         $filetype = $_FILES['fileFF']['type'][$i];
         $filesize += $_FILES['fileFF']['size'][$i];
         $message.="

--$boundary
Content-Type: \"$filetype\"; name=\"$filename\"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=\"$filename\"

$attachment";
     }
   }
   $message.="
--$boundary--";

    mail($to, $subject, $message, $headers);
?>


Скрипт проверяет поле input с id FileFF (type="file") на кол-во выбранных файлов. Если менее 4 файлов, то скрипт работает дальше, если больше, то скрипт выдаёт ошибку. В данном скрипте проверка файлов отлично работает. Редирект после отправки тоже. Письма отправляются, но все поля не выводятся в письме, картинки тоже. Как быть?
Ответить с цитированием