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

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

08.11.2015, 11:00. Показов 2263. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть форма написанная на HTML для отпавки E-mail со вложением с помощью PHP:
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Моя форма отпраавки сообщений</title>
</head>
<body>
<form action="http://kuchenkov-sergey.myjino.ru/sendmail.php">
<p><input type="text" name="name" placeholder="Введите имя"></p>
<p><input type="text" name="fam" placeholder="Введите фамилию"></p>
<p><input type="text" name="otch" placeholder="Введите отчество"></p>
<p><input type="file" name="file" accept="image/jpeg,image/png,image/gif">
<p><input type="submit" value="отправить"></p>
</form>
</body>
</html>
Есть PHP скрипт для отпавки E-mai:
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
<?php 
$to = "kuchenkov-sergeyy@rambler.ru"; 
// емайл получателя 
 
$subject = "онлайн заявка"; 
// тема письма 
 
$message = ""; 
// текст сообщения
 
$filename = "file.doc";
// название файла
 
$filepath = "files/file.doc"; 
// месторасположение файла 
 
// письмо с вложением состоит из нескольких частей, которые разделяются разделителем
 
$boundary = "--".md5(uniqid(time())); 
// генерируем разделитель 
$mailheaders = "MIME-Version: 1.0n"; 
$mailheaders .="Content-Type: multipart/mixed; boundary="$boundary"n"; 
// разделитель указывается в заголовке в параметре boundary 
 
$mailheaders .= "From: SiteRobot <noreply@siterobot.ru>rn"; 
$mailheaders .= "Reply-To: noreply@siterobot.rurn"; 
 
 
$multipart = "--$boundaryn"; 
$multipart .= "Content-Type: text/plain; charset=windows-1251nn"; 
$multipart .= "$messagenn"; 
 
// первая часть само сообщение
 
$fp = fopen($filepath,"r"); 
 if (!$fp) 
 { 
 print "Файл не может быть прочитан"; 
 exit(); 
 } 
 
$file = fread($fp, filesize($filepath)); 
 
fclose($fp); 
// чтение файла
 
$message_part = "--$boundaryn"; 
$message_part .= "Content-Type: application/octet-stream; name = "".$filename.""n"; 
$message_part .= "Content-Transfer-Encoding: base64n"; 
$message_part .= "Content-Disposition: attachment; filename = "".$filename.""nn"; 
$message_part .= chunk_split(base64_encode($file))."n"; 
 
// второй частью прикрепляем файл, можно прикрепить два и более файла
$multipart .= $message_part;
 
mail($to,$subject,$multipart,$mailheaders);
// отправляем письмо 
 
?>
Как вывести в $message = ""; данные которые мы передаем из HTML формы - name, fam ,otch?
Не понятны некоторые строки кода:
PHP
1
2
$filename = "file.doc";
// название файла
Это название файла, которое придет на E-mail? Т.е. если мы загузили в форму файл image.jpg, то на почту придет file.doc?
PHP
1
2
$filepath = "files/file.doc"; 
// месторасположение файла
Это тот адресс по которму будет загржен файл на сайт, который будет отправлен на почту?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.11.2015, 11:00
Ответы с готовыми решениями:

Форма онлайн заявки отправляет пустые строки
Сабж. На почту приходит только первые 3 строки, остальные пусты. Пример : Имя пославшего: das Контакт: sdas Сообщение: Продвижение...

Нужно исправить некоторые ошибки с формой онлайн заявки
Помогите пожалуйста! Не работает почему то кнопка &quot;отправить&quot; ! Ссылка на скачивание формы: http://rghost.ru/56589293 ...

Форма отправки письма с вложением
Здравствуйте, дорогие форумчане. Столкнулся с такой проблемой. Имеется простая форма, &lt;div class=&quot;row&quot;&gt; &lt;div...

3
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
08.11.2015, 12:23
Цитата Сообщение от sergey_ku Посмотреть сообщение
Как вывести в $message = ""; данные которые мы передаем из HTML формы - name, fam ,otch?
Во первых здесь нужно указать метод ,POST например , вот вторых для отправки файла нужно " enctype="multipart/form-data" указать, и в третих нужно давать имя и кнопки
HTML5
1
2
<form action="http://kuchenkov-sergey.myjino.ru/sendmail.php" method='POST'  enctype="multipart/form-data" >
<p><input type="submit" value="отправить" name='enter'></p>
PHP
1
2
3
4
5
if(isset($_POST['enter'])){
echo $_POST['name']; // вывод имени
echo $_POST['fam']; //фамилии
echo $_POST['otch']; //отчество
}
0
0 / 0 / 0
Регистрация: 26.06.2015
Сообщений: 159
08.11.2015, 14:56  [ТС]
Подскажите пожалуйста как код PHP павильно фофрмить. Я сделал так:
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
?
 if(isset($_POST['enter'])) {
 
 //Проверка отправилось ли наше поля name и не пустые ли они
        $to = ' kuchenkov-sergeyy@rambler.ru '; //Почта получателя, через запятую можно указать сколько угодно адресов
        $subject = 'Обратный звонок'; //Загаловок сообщения
        $message = echo $_POST['name']; // вывод имени
                   echo $_POST['fam']; //фамилии
                   echo $_POST['otch']; //отчество"
 
                 if($file)
        $bodyMail = "--$separator\n"; // начало тела письма, выводим разделитель
        $bodyMail .= "Content-type: text/html; charset='utf-8'\n"; // кодировка письма
        $bodyMail .= "Content-Transfer-Encoding: quoted-printable"; // задаем конвертацию письма
        $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n"; // задаем название файла
        $bodyMail .= $message."\n"; // добавляем текст письма
        $bodyMail .= "--$separator\n";
        $fileRead = fopen($file, "r"); // открываем файл
        $contentFile = fread($fileRead, filesize($file)); // считываем его до конца
        fclose($fileRead); // закрываем файл
        $bodyMail .= "Content-Type: application/octet-stream; name==?utf-8?B?".base64_encode(basename($file))."?=\n"; 
        $bodyMail .= "Content-Transfer-Encoding: base64\n"; // кодировка файла
        $bodyMail .= "Content-Disposition: attachment; filename==?utf-8?B?".base64_encode(basename($file))."?=\n\n";
        $bodyMail .= chunk_split(base64_encode($contentFile))."\n"; // кодируем и прикрепляем файл
        $bodyMail .= "--".$separator ."--\n";
    // письмо без вложения
    }else{
        $bodyMail = $message;
    }
    $result = mail($mailTo, $subject, $bodyMail, $headers); // отправка письма
    return $result;
 
        $headers  = "Content-type: text/html; charset=utf-8 \r\n"; //Кодировка письма
        $headers .= "From: Отправитель <maximgerasim@mail.ru>\r\n"; //Наименование и почта отправителя
        $headers = "MIME-Version: 1.0\r\n";
     
}
?>
Нот сервер выдает ошибку: Parse error: syntax error, unexpected 'echo' (T_ECHO) in /home/users1/k/kuchenkov-sergey/domains/kuchenkov-sergey.myjino.ru/sendmail.php on line 7
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
08.11.2015, 15:23
Лучший ответ Сообщение было отмечено sergey_ku как решение

Решение

Что же вы делаете...написано же синтаксическая ошибка в строке 7.
$message =$_POST['name'].''.$_POST['fam'].''.$_POST['otch];
echo $message;
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2015, 15:23
Помогаю со студенческими работами здесь

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

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

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

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

Форма обратной связи с вложением (анкета)
Здравствуйте! Ребятки тема как всегда актуальна, но мне тут просто нужна помощь так сказать в поиске ошибки. Есть на сайте форма...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru