Файл до форми зворотного зв’язку прикріпити відправка поштою

Готова форма зворотного зв'язку з прикріпленням файлу

Сьогодні наша тема - прикріпити файл до форми і відправити її! На сторінці ви зможете розібратися в цьому питанні, плюс зможете скопіювати готову форма зворотного зв'язку з прикріпленням файлу.

І ми розберемо два варіанти:

Перший варіант найпростіший, який можна придумати! Відкриваємо пошуковик і забиваємо наш пошуковий запит:

форма зворотного зв'язку з прикріпленням файлу.

Можна, звичайно, і самому написати, але, як відомо ... лінь мати прогресу! І в дійсності я не буду вам розписувати всі значення і сенс коду в обробнику, єдине скажу, що для роботи даного скрипта потрібно включена функція file_uploads, можна детальніше почитати тут.

І власне готова перша форма відправки повідомлення:

Відправлення повідомлення з вкладенням

У зв'язку з тим, що довбані спамери і інша нечисть знайшла наші сторінки і використовувала їх як розсилки шкідливого коду, і просто спаму, відправлення повідомлень відключена ...

Після відправки повідомлення видаватиме помилку ...

Природно, що ніякої уваги не варто звертати на вигляд, тому, що декорувати завжди можна, а ось знайти працездатний скрипт, досить не просто!

Завантажити готову форму зворотного зв'язку з прикріпленням файлу

Завантажити архів з вихідними кодами. Після того, як завантажили архів, розархівуйте в потрібну папку і можна тестувати!

Ну і другий варіант прикріплення файлу до форми, буде ґрунтуватися на тому исходнике, який у нас описаний в першому варіанті, і схрестимо з нашою формою, яку ми робили тут.

Грубо кажучи візьмемо два скрипта і одружилися їх, видаливши все непотрібне!

Введіть зо два не нульових числа і їх суму


І додамо в нашу форму ту частину, яка відповідає за прикріплення файлу з першого пункту, в архіві файл index.php 27 рядок:

Photo:

Почистимо, видалимо все непотрібне:

Лапки можна ставити, можна і не ставити, і так і так буде працювати!

І ... дану рядок розмістимо після поля з текстом, наша форма в остаточному вигляді:

Введіть зо два не нульових числа і їх суму


C формою розібралися, тепер соедов два обробника:

$ Headers = "Content-type: text / plain; charset = utf-8";

$ Subject = "Це тестове повідомлення з сайту DwWEB.RU, для перевірки роботи форми.";

if ($ a == $ b $ A == 0)

echo "Вам же написали! Два не нульовий числа!";

echo "Повернутися до заповнення форми";

echo "Вам потрібно в перший клас !!";

echo "Повернутися до заповнення форми";

$ Send = mail ($ to, $ subject, $ message, $ headers);

if ($ send == "true")

echo "Спасибі за відправку Вашого повідомлення.
\ N ";

echo "Повернутися на сторінку з описом
\ N ";

echo "

";

echo "Повідомлення не відправлено. Приносимо свої вибачення. Мабуть сервер не зрозумiв ваше повідомлення, скопіюйте цей email [email protected] і відправте зі свого пошти.";

І будемо брати все нам потрібне з даного обробника і вставляти в наш обробник.

Тут код в якості ілюстрації, але і його можна подивитися тут, і ми періодично будемо звертатися до нього, і якщо ми будемо писати про нумерацію рядків, то можна відкрити цю сторінку в браузері і подивитися код ctrl U - там буде нумерація зліва ...

Або код нижче, обробник з архіву, візьмемо його повністю:

// перевіряємо правильності заповнення за допомогою регулярного виразу

if (! preg_match ( "/ ^ [0-9a-z _] @ [0-9a-z _ ^ \.] \. [a-z] $ / i", $ _POST [ 'mail_to']))

// Якщо поле вибору вкладення не пусте - закачуємо його на сервер

// Відправляємо поштове повідомлення

if (empty ($ picture)) mail ($ mail_to, $ thm, $ msg);

else send_mail ($ mail_to, $ thm, $ msg, $ picture);

// Допоміжна функція якого потрібно надіслати повідомлення з вкладенням

function send_mail ($ to, $ thm, $ html, $ path)

$ File = fread ($ fp, filesize ($ path));

$ Boundary = "-". Md5 (uniqid (time ())); // генеруємо роздільник

$ Headers. = "MIME-Version: 1.0 \ n";

$ Headers. = "Content-Type: multipart / mixed; boundary =" $ boundary "\ n";

$ Kod = 'utf-8'; // або $ kod = 'windows-1251';

$ Multipart. = "Content-Type: text / html; charset = $ kod \ n";

$ Multipart. = "Content-Transfer-Encoding: Quot-Printed \ n \ n";

$ Message_part. = "Content-Type: application / octet-stream \ n";

$ Message_part. = "Content-Transfer-Encoding: base64 \ n";

$ Message_part. = "Content-Disposition: attachment; filename =" ". $ Path." "\ N \ n";

if (! mail ($ to, $ thm, $ multipart, $ headers))

echo "На жаль, лист не відправлено";

Все, що йде до змінної $ picture = ""; нам не треба! Тому, що це все у нас вже є.

Далі нам потрібно розібратися з логікою, тобто що за чим має йти ...

Перша умова, це наявність, або відсутність завантаженого файлу.

Якщо завантажений файл відсутній, то виконуємо всі операції перевірки і відправки повідомлення, як в нашому обробнику. починаючи з рядка 43 - if ($ a == $ b $ A == 0) і до кінця ...

Якщо файл існує, то йдемо по шляху відправки повідомлення з другого обробника з елементами перевірки на суму м на нулі ...

Все гранично просто!

Пам'ятаємо, що в двох обробниках різні змінні і цей конфлікт також потрібно вирішити!

І давайте це зараз прямо вирішимо! Щоб далі у нас не виникало проблем!

Візьмемо основні змінні з стороннього обробника. рядки з 32 по 36, після заміни ці рядки нам не потрібні.

$ Thm замінимо всюди на $ subject

Далі нам потрібно взяти змінну $ picture = ""; і допоміжну функцію і підняти в нашому обробнику майже до самого верху:

Для того, щоб ви отримали безкоштовну інформацію, ми витратили і час і гроші!

Навіть найменша сума буде використана на просування і поліпшення проекту!

+ Якщо у вас є трохи часу, то найменше, що ви можете зробити для нас - це оцінити виконану роботу!

Заздалегідь дякуємо Вам!

Всі справи зроблені!

Тепер можна і пограти!

Сподобалася гра. Растфнуть на весь екран

Покращимо поведінковий фактор на своєму сайті.