Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24

Форма обратной связи с вложением (анкета)

02.09.2016, 12:15. Показов 1198. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Ребятки тема как всегда актуальна, но мне тут просто нужна помощь так сказать в поиске ошибки.
Есть на сайте форма заполнения анкеты с вложением фотографии.
Вроде все четко сделано, но как бы не так. Поля заполнены, файл прикреплен, но сайт пишет, что данные переданы не были!
Отдельно проверил, работает ли ф-ция mail() на хостинге, итог сообщение приходит, дело в коде.
Итак вот форма:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<hr />
<div class="container">
<div class="row">
<h1>Заполните анкету</h1>
<hr />
<form class="form-horizontal" id="feedback-form-1" role="form" enctype="multipart/form-data" method="post" action="contacts_clinik.php">
<div class="form-group">
<label for="name_clinik" class="col-md-3 control-label">Наименование учреждения*</label>
<div class="col-md-5">
<input type="text" name="name_clinik" class="form-control w100 border" id="name_clinik" required="required"  placeholder="Наименование учреждения"/>
</div>
</div>
<div class="form-group">
<label for="phone_clinik" class="col-md-3 control-label">Телефон*</label>
<div class="col-md-5">
<input type="text" name="phone_clinik" class="form-control w100 border" id="phone_clinik" required="required" placeholder="Телефон"/>
</div>
</div>
<div class="form-group">
<label for="inputemail_clinik" class="col-md-3 control-label">Email*</label>
<div class="col-md-5">
<input type="email" name="inputemail_clinik" class="form-control w100 border" id="inputemail_clinik" required="required" placeholder="Email"/>
</div>
</div>
<div class="form-group">
<label for="city_clinik" class="col-md-3 control-label">Город*</label>
<div class="col-md-5">
<input type="text" name="city_clinik" class="form-control w100 border" id="city_clinik" required="required" placeholder="Город"/>
</div>
</div>
<div class="form-group">
<label for="special_clinik" class="col-md-3 control-label">Основная специализация клиники*</label>
<div class="col-md-5">
<input type="text" name="special_clinik" class="form-control w100 border" id="special_clinik" required="required" placeholder="Основная специализация клиники"/>
</div>
</div>
<div class="form-group">
<label for="inputspece" class="col-md-3 control-label">Дополнительные специальности</label>
<div class="col-md-6">
<textarea type="text" name="inputspece" class="form-control w100 border" required="required" id="inputspece" placeholder="Дополнительные специальности" rows="3"></textarea>
</div>
</div>
<div class="form-group">
<label for="min_prise_clinik" class="col-md-3 control-label">Минимальная стоимость приёма</label>
<div class="col-md-5">
<input type="text" name="min_prise_clinik" class="form-control w100 border" id="min_prise_clinik" required="required" placeholder="Минимальная стоимость приёма" />
</div>
</div>
<div class="form-group">
<label for="receptionlocation_clinik" class="col-md-3 control-label">Полный адрес клиники</label>
<div class="col-md-6">
<textarea type="text" name="receptionlocation_clinik" class="form-control w100 border" id="receptionlocation_clinik" required="required" placeholder="Полный адрес клиники" rows="3"></textarea>
</div>
</div>
<div class="form-group">
<label for="information_clinik" class="col-md-3 control-label">Другая информация (описание)</label>
<div class="col-md-6">
<textarea type="text" name="information_clinik" class="form-control w100 border" id="information_clinik" required="required" placeholder="Другая информация" rows="3"></textarea>
</div>
</div>
<div class="form-group">
<label for="fileFF" class="col-md-3 control-label">Фото (отличного качества) JPEG/PNG/GIF ?600x800</label>
<div class="col-md-6">
<input type="file" name="fileFF" id="fileFF" class="w100"/>
</div>
</div>
<div class="col-md-10 col-sm-10 col-xs-4 col-lg-10"></div>
<div class="col-md-2 col-sm-2 col-xs-8 col-lg-2">
<input type="submit" value="Отправить анкету" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<br />
<script>
document.getElementById('feedback-form-1').addEventListener('submit', function(evt){
  var http = new XMLHttpRequest(), f = this;
  evt.preventDefault();
  http.open("POST", "http://doctor-federation.com/include/contacts_clinik.php", true);
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {
      alert(http.responseText);
      if (http.responseText.indexOf(f.name_clinik.value) == 0) { // очистить поле сообщения, если в ответе первым словом будет имя отправителя
        f.information_clinik.removeAttribute('value');
        f.information_clinik.value='';
      }
    }
  }
  http.onerror = function() {
    alert('Извините, данные не были переданы');
  }
  http.send(new FormData(f));
}, false);
</script>
А вот и обработчик:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
if (isset ($_POST['inputemail_clinik'])) {
  $to = "web.spservis2015@gmail.com"; // поменять на свой электронный адрес
  $from = $_POST['inputemail_clinik'];
  $subject = "Заполнена контактная форма с ".$_SERVER['HTTP_REFERER'];
  $message = "Имя: ".$_POST['name_clinik']."
  \nEmail: ".$from."
  \nIP: ".$_SERVER['REMOTE_ADDR']."
  \nИмя: ".$_POST['phone_clinik']."
  \nИмя: ".$_POST['city_clinik']."
  \nИмя: ".$_POST['special_clinik']."
  \nИмя: ".$_POST['inputspece']."
  \nИмя: ".$_POST['min_prise_clinik']."
  \nИмя: ".$_POST['receptionlocation_clinik']."
  \nСообщение: ".$_POST['information_clinik'];
  $boundary = md5(date('r', time()));
  $filesize = '';
  $headers = "MIME-Version: 1.0\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";
     if(is_uploaded_file($_FILES['fileFF']['tmp_name'])) {
         $attachment = chunk_split(base64_encode(file_get_contents($_FILES['fileFF']['tmp_name'])));
         $filename = $_FILES['fileFF']['name'];
         $filetype = $_FILES['fileFF']['type'];
         $filesize += $_FILES['fileFF']['size'];
         $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['name_clinik'].', Ваше сообщение получено, спасибо!';
  } else {
    echo 'Извините, письмо не отправлено. Размер файла превышает 10 МБ.';
  }
}
?>
Я так понимаю, что форма даже в обработчик не идет, раз пишет сообщение, что данные не были переданы, вопрос: в чем проблема и как мне все таки сделать нормальную анкету))))))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.09.2016, 12:15
Ответы с готовыми решениями:

Форма обратной связи с вложением
Я пытался, все таки не приходит файл на почту, но есть текст. Помогите плиз Вот такой код &lt;form action=&quot;index.php&quot;...

Форма обратной связи(анкета регистрации)
Добрый вечер. Не знаю сюда ли пишу, но надеюсь, что тут мне смогут помочь. Основная проблема заключается в том, что я создаю анкету...

Форма обратной связи с вложением на PHP
Здравствуйте! Подскажите, пожалуйста: на сайте создали форму обратной связи на PHP с возможностью прикрепления файлов. Сообщения...

4
19 / 19 / 11
Регистрация: 15.11.2014
Сообщений: 164
02.09.2016, 12:49
Я бы посоветовал взять готовый скрипт загрузчика. И использовать ajax от jquery
0
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24
02.09.2016, 12:51  [ТС]
konorw, Это по сути и есть готовый скрипт обратной связи, я его подкорректировал под себя. Чтобы получилась анкета, просто добавил новые поля и в обработчике их тоже прописал, но увы..
0
930 / 846 / 190
Регистрация: 28.11.2013
Сообщений: 3,621
02.09.2016, 13:21
АндрейПершин, а не лишняя фиг. скобка после $attachment?
1
0 / 0 / 0
Регистрация: 15.12.2013
Сообщений: 24
05.09.2016, 11:17  [ТС]
miketomlin, Спасибо)) Дело и правда в этом! Теперь сообщение отправляется, но....как обычно есть Но) Дело в том, что он все равно пишет, что 'Извините, данные не были переданы'. Тут уже ошибка в скрипте после формы
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
document.getElementById('feedback-form-1').addEventListener('submit', function(evt){
  var http = new XMLHttpRequest(), f = this;
  evt.preventDefault();
  http.open("POST", "http://doctor-federation.com/include/contacts_clinik.php", true);
  http.onreadystatechange = function() {
    if (http.readyState == 4 && http.status == 200) {
      alert(http.responseText);
      if (http.responseText.indexOf(f.name_clinik.value) == 0) { // очистить поле сообщения, если в ответе первым словом будет имя отправителя
        f.information_clinik.removeAttribute('value');
        f.information_clinik.value='';
      }
    }
  }
  http.onerror = function() {
    alert('Извините, данные не были переданы');
  }
  http.send(new FormData(f));
}, false);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.09.2016, 11:17
Помогаю со студенческими работами здесь

Форма обратной связи на PHP с вложением
Здравствуйте. Имеется форма обратной связи. Помогите сделать так чтобы можно было к форме прикреплять файл &lt;?php /* Здесь мы...

Опять форма обратной связи с вложением
Здравствуйте не могу точно сформулировать вопрос, поэтому создал тему здесь. Есть форма обратной связи на сайте с вложением и есть код...

PHP форма обратной связи с вложением - вместо вложения кодировка
Здравствуйте! Помогите, пожалуйста, решить вопрос. В PHP не сильна. Есть форма обратной связи с вложением, все бы ничего, но вместо...

Как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена
Добрый день. Подскажите пожалуйста как сделать чтоб форма обратной связи не отправляла письмо если форма не заполнена.

Форма обратной связи
ЧИстый шаблон, на css и html , вставил форму связи на php, не работает подскажите почему . http://seolproduct.ru/


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru