Как отправить файл из формы на сайте?

Надо сделать отправку файла из формы, которая находится на сайте . Как это реализовать?

Вот код обработчика:
<?php 
// несколько получателей 
$to = 'asd@asd.asd' . ', '; // обратите внимание на запятую 


// тема письма 
$subject = 'Письмо с моего сайта'; 

// текст письма 
$message = 'Вид работы: ' . $_POST['field1'] . ' Предмет:<br />' . $_POST['field2'] . '<br /> 
Файл '. $_POST['field9'] . '<br /> Название работы '. $_POST['field12'] . ' <br /> Срок сдачи: '. $_POST['field10'] . 
'<br /> Колличество страниц '. $_POST['field3'] . 
'<br /> Email '. $_POST['field7']. 
'<br /> Телефон '. $_POST['field16']. 
'<br /> Промокод '. $_POST['field13']. 
'<br /> Комментарий : '. $_POST['field11']; 

// Для отправки HTML-письма должен быть установлен заголовок Content-type 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 

// Дополнительные заголовки 
$headers .= 'To: Иван <Ivan@example.com>' . "\r\n"; // Свое имя и email 
$headers .= 'From: ' . $_POST['name'] . '<' . $_POST['email'] . '>' . "\r\n"; 


// Отправляем 
mail($to, $subject, $message, $headers); 
?>
  • Вопрос задан
  • 422 просмотра
Пригласить эксперта
Ответы на вопрос 2
SwoDs
@SwoDs
PHP YII2
! Первое и самое главное если вы что то постите с кодом используйте тег code, уважайте тех кто читаешь ваш пост и хочет вам помочь ( joxi.ru/zANy7Gqsbbj729 )

Теперь по коду

$to = 'asd@asd.asd' . ', '; // обратите внимание на запятую


что за извращение? Это говнокод батюшка )
А что будет если будет только 1 имейл - "vasya@ya.ru," явно запятая лишняя.

Попробуйте использовать массив.
$emails_arr[] = 'anyemail@yaya.ru'; // так присваиваем след. свободному ключу значение

После того как вы собрали массив просто примените implode():
$to = implode(',', $emails_arr);
При этом лишних запятых не будет. И код красивый и понятный.

По поводу загрузки файлов
Не очень понял что значит ваш комментарий "другая структура". Структура тут не на что не влияет.
Если вы читали то что вам скинул Rikcon там пишут что отправка через mail() файлов - это сущий ад и вам будет проще использовать сторонние решения, к примеру PHPMailer.

Если вы не готовы использовать то что писали другие, можно попробовать немного иной способ - передавать ссылку.
Т.е. вы можете закачать файл к себе на сайт, а в письме отправить ссылку на скачивание. Делается достаточно быстро. Гугл вам поможет "как загрузить файл php"

п.с. У вас так много склеиваний текста для этого лучше использовать ф-ию sprintf()

Пример:

$cat = 'кот';
$dog = 'пес';
echo sprintf('%s плюс %s получится котопес', $cat, $dog);
Ответ написан
peterzubkoff
@peterzubkoff
Проще вам сделать форму с 2-мя полями, раз плохо разбираетесь (это я без аггресива).

Если это форма для заказа какой-то фриланс-работы, то действительно упростите себе задачу до email/телефон, имя и комментарий в <textarea></textarea>.

Большие длинные формы нужны очень крупным компаниям (напр. actis.ru) для того чтобы бысто отсеивать и распределять по менеджерам входящие заявки.

К тому же чем меньше форма, тем больше конверсия (чаще всего).
JaiL2Jxc0vs.jpgleadmachine.ru
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы