[Решено] Форма обратной связи

Тема в разделе "PHP", создана пользователем kit-kater, 23 сен 2015.

Статус темы:
Закрыта.
  1. kit-kater

    kit-kater

    Регистрация:
    18 май 2015
    Сообщения:
    41
    Симпатии:
    0
    Здравствуйте!
    Помогите, пожалуйста, разобраться с проблемой.
    Не работает форма обратной связи. При отправлении письма браузер пишет "Подтвердите действие на "мой домен"". И на почту ничего не присылается.
    Ошибка началась, кода в php файле отправки начала прописывать новые поля в $message.
    Сайт - лендинг, без cms.
    Фрагменты кода с формой:
    HTML:
    <form enctype="multipart/form-data" method="post" id="feedback-form">
      <label for="ageFF"><p>1. Укажите ваш возраст*:</p></label><br />
    <input name="ageFF" type="checkbox" value="25-30" /><span class="text-g">25-30</span>
    <input name="ageFF" type="checkbox" value="30-35" /><span class="text-g">30-35</span>
    <input name="ageFF" type="checkbox" value="35-40" /><span class="text-g">35-40</span>
    <input name="ageFF" type="checkbox" value="40-45" /><span class="text-g">40-45</span>
    <input name="ageFF" type="checkbox" value="45-50" /><span class="text-g">45-50</span>
    <input name="ageFF" type="checkbox" value="50-55" /><span class="text-g">50-55</span>
    
      <br /><br />
    <label for="rostFF"><p>2. Укажите ваш рост*:</label><br />
    <input type="text" name="rostFF" id="rostFF" required placeholder="см" class="w100"><br /><br />
    <label for="vesFF"><p>3. Укажите ваш вес*:</p></label><br />
    <input type="text" name="vesFF" id="vesFF" required placeholder="кг" x-autocompletetype="name" class="w100"><br /><br />
    <label for="hairFF"><p>4. Укажите ваш цвет волос*:</p></label><br />
    <input type="text" name="hairFF" id="hairFF" required placeholder="" x-autocompletetype="name" class="w100"><br /><br />
    <label for="eyesFF"><p>5. Укажите ваш цвет глаз*:</p></label><br />
    <input type="text" name="eyesFF" id="eyesFF" required placeholder="" x-autocompletetype="name" class="w100"><br /><br />
    <label for="cityFF"><p>6. Укажите ваш город проживания*:</p></label><br />
    <input type="text" name="cityFF" id="cityFF" required placeholder="" x-autocompletetype="name" class="w100"><br /><br />
    <label for="vkFF"><p>7. Укажите ссылки на вашу страницу в Вк, Од:</p></label><br />
    <input type="text" name="vkFF" id="vkFF" required placeholder="" x-autocompletetype="name" class="w100"><br /><br />
    <label for="numFF"><p>8. Укажите телефон, по которому с вами можно связаться*:</p></label><br />
    <input type="text" name="numFF" id="numFF" required placeholder="" x-autocompletetype="name" class="w100"><br /><br />
    <label for="langFF"><p>9. Уровень знания англ.языка*:</p></label><br />
    <input type="text" name="langFF" id="langFF" required placeholder="" x-autocompletetype="name" class="w100"><br /><br />
    
    <label for="fileFF"><p>10. Вложите ваше фото*:</p></label>
    <input type="file" name="fileFF[]" multiple id="fileFF" class="w100">
    <br />
    <input value="ОТПРАВИТЬ АНКЕТУ" type="submit" id="submitFF">
    </form>

    PHP:
    <?php
    if (isset ($_POST['contactFF'])) {
      
    $to "[email protected]"// поменять на свой электронный адрес
      
    $from $_POST['contactFF'];
      
    $subject "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
      
    $message "\n1. Укажите ваш возраст*: ".$_POST['ageFF']."\n2. Укажите ваш рост*: ".$_POST['rostFF']."\n3. Укажите ваш вес*: ".$_POST['vesFF']."\n4. Укажите ваш цвет волос*: ".$_POST['hairFF']."\n5. Укажите ваш цвет глаз*: ".$_POST['eyesFF']."\n6. Укажите ваш город проживания*: ".$_POST['cityFF']."\n7. Укажите ссылки на вашу страницу в Вк, Од: ".$_POST['vkFF']."\n8. Укажите телефон, по которому с вами можно связаться*: ".$_POST['numFF']."\n9. Уровень знания англ.языка*: ".$_POST['langFF'];
      
    $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--";

      if (
    $filesize 10000000) { // проверка на общий размер всех файлов. Многие почтовые сервисы не принимают вложения больше 10 МБ
        
    mail($to$subject$message$headers);
        echo 
    $_POST['nameFF'].', Ваше сообщение получено, спасибо!';
      } else {
        echo 
    'Извините, письмо не отправлено. Размер всех файлов превышает 10 МБ.';
      }
    }
    ?>

    Код:
    <script>
    document.getElementById('feedback-form').addEventListener('submit', function(evt){
      var http = new XMLHttpRequest(), f = this;
      evt.preventDefault();
      http.open("POST", "contacts.php", true);
      http.onreadystatechange = function() {
        if (http.readyState == 4 && http.status == 200) {
          alert(http.responseText);
          if (http.responseText.indexOf(f.nameFF.value) == 0) { // очистить поле сообщения, если в ответе первым словом будет имя отправителя
            f.messageFF.removeAttribute('value');
            f.messageFF.value='';
          }
        }
      }
      http.onerror = function() {
        alert('Извините, данные не были переданы');
      }
      http.send(new FormData(f));
    }, false);
    </script>
     
Статус темы:
Закрыта.