NexxDigital - компьютеры и операционные системы

Одной из самых востребованных функций на сайте является форма заявки или заказа, данные из которой отправляются на почту владельцу сайта. Как правило такие формы являются простыми и состоят из двух трех полей для ввода данных. Как же создать такую форму заказа? Здесь потребуется использование языка разметки HTML и языка программирования PHP.

Язык разметки HTML сам по себе несложен, нужно всего лишь разобраться в том как и где ставить те или иные теги. С языком программирования PHP все немного сложнее.

Для программиста создать такую форму не составит труда, а вот HTML верстальщику может показаться сложным некоторые действия.

Создаем форму отправки данных в html

Первая строка будет следующей

Это очень важный элемент формы. В нем мы указываем каким способом будут передаваться данные и какому файлу. В данном случае все передачется методом POST файлу send.php. Программа в этом файле соответственно должна принять данные, они будут содержаться в post массиве, и отправить их на указанный email адрес.

Вернемся к форме. Вторая строка будет содержать поле для ввода ФИО. Имеет следующий код:

Тип формы text, то есть пользователь сможет ввести или скопировать сюда текст с клавиатуры. Под параметром name содержится название формы. В данном случае это fio, именно под таким именем будет передаваться все, что пользователь введен в данноу поле. Параметр placeholder указывает на то, что будет записано в этом поле в виде пояснения.

Следующая строка:

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

Следующей строкой будет кнопка "отправить":

И последней строкой в форме будет тэг

Теперь соберем все вместе.





Теперь сделаем так, чтобы поля в форме стали обязательными для заполнения. Имеем следующий код:





Создаем файл, принимающий данные из HTML формы

Это будет файл с именем send.php

В файле на первом этапе нужно принять данные из пост массива. Для этого создаем две переменные:

$fio = $_POST["fio"];
$email = $_POST["email"];

Перед названиями переменных в php ставиться знак $, в конце каждой строки ставиться точка с запятой. $_POST это массив в который передаются данный из формы. В форме html при этом указан метод отправки method="post". Так, приняты две переменные из формы html. Для целей защиты своего сайта нужно провести эти переменные через несколько фильтров - функций php.

Первая функция преобразует все символы, которые пользователь попытается добавить в форму:

При этом новые переменные в php не создаются, а используются уже имеющиеся. Что сделает фильтр, он преобразует символ "<" в "<". Также он поступить с другими символами, встречающимися в html коде.

Вторая функция декодирует url, если пользователь попытается его добавить в форму.

$fio = urldecode($fio);
$email = urldecode($email);

Третей функцией мы удалим пробелы с начала и конца строки, если таковые имеются:

$fio = trim($fio);
$email = trim($email);

Существуют и другие функции, позволяющие отфильтровать переменные php. Их использование зависит от того, насколько вы опасаетесь того, что злоумышленник попытается добавить программный код в данную форму отправки данных на почту html.

Проверка данных, передаваемых от HTML формы в файл PHP

Для того, чотбы проверить, работает ли этот код, передаются ли данные можно просто их вывести на экран при помощи функции echo:

echo $fio;
echo "
";
echo $fio;

Вторая строка здесь нужна для того, чтобы разделить вывод переменных php на разные строки.

Отправляем полученные данные из формы HTML на почту при помощи PHP

Для отправки данных на почту нужно воспользоваться функцией mail в PHP.

mail("на какой адрес отправить", "тема письма", "Сообщение (тело письма)","From: с какого email отправляется письмо \r\n");

Например, нужно отправить данные на email владельца сайта или менеджера [email protected].

Тема письма должна быть понятной, а сообщение письма должно содержать то, что указал пользователь в HTML форме.

mail("[email protected]", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n");

Необходимо добавить условие, которе проверит отправилась ли форма при помощи PHP на указанные адрес электронной почты.

if (mail("[email protected]", "Заказ с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n"))
{
echo "сообщение успешно отправлено";
} else {
}

Таким образом программный код файла send.php, который отправит данные HTML формы на почту будет выглядеть следующим образом:

$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
//echo $fio;
//echo "
";
//echo $email;
if (mail("[email protected]", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n"))
{ echo "сообщение успешно отправлено";
} else {
echo "при отправке сообщения возникли ошибки";
}?>

Три строки для проверки, передаются ли данные в файл закомментированы. При необходимости их можно удалить, так как они нужны были только для отладки.

Помещаем HTML и PHP код отправки формы в один файл

В комментариях к этой статье многие задают вопрос о том, как сделать, чтобы и HTML форма и PHP код отправки данных на почту находились в одном файле, а не двух.

Для реализации такой работы нужно поместить HTML код формы в файл send.php и добавить условие, которое будет проверять наличие переменных в массиве POST (этот массив передается из формы). То есть, если переменные в массиве не существуют, то нужно показать пользователю форму. Иначе нужно принять данные из массива и отправить их адресату.

Давайте посмотрим как изменить PHP код в файле send.php:



Форма заявки с сайта


//проверяем, существуют ли переменные в массиве POST
if(!isset($_POST["fio"]) and !isset($_POST["email"])){
?>





} else {
//показываем форму
$fio = $_POST["fio"];
$email = $_POST["email"];
$fio = htmlspecialchars($fio);
$email = htmlspecialchars($email);
$fio = urldecode($fio);
$email = urldecode($email);
$fio = trim($fio);
$email = trim($email);
if (mail("[email protected]", "Заявка с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n")){
echo "Сообщение успешно отправлено";
} else {
echo "При отправке сообщения возникли ошибки";
}
}
?>

Существование переменной в POST массиве мы проверяем PHP функцией isset(). Восклицательный знак перед этой функцией в условии означает отрицание. То есть, если переменной не существует, то нужно показать нашу форму. Если бы я не поставил восклицательный знак, то условие дословно означало бы - "если существует, то показать форму". А это неправильно в нашем случае. Естественно, что вы можете переименовать его в index.php. Если будуту переименовывать файл, то не забудьте переименовать название файла и в строке

. Форма должна ссылаться на эту же страницу, например index.php. В код я добавил заголовок страницы.

Частые ошибки, возникающие при отправке PHP формы с сайта

Первая, наверное самая популярная ошибка, это когда вы видите пустую белую страницу без сообщений. Это означает, что вы допустили ошибку в коде страницы. Вам нужно включить отображение всех ошибок в PHP и тогда вы увидите, где допущена ошибка. Добавьте в код:

ini_set("display_errors","On");
error_reporting("E_ALL");

Файл send.php должен запускаться только на сервере, иначе код просто не будет работать. Желательно, чтобы это был не локальный сервер, так как он не всегда настроен на отправку данных на внешний почтовый сервер. Если вы запустите код не на сервере, то вам отобразиться код PHP прямо на странице.

Таким образом, для корректной работы я рекомендую поместить файл send.php на хостинг сайта. Там, как правило, все уже настроено.

Еще одна частая ошибка, когда появляется оповещение "Сообщение успешно отправлено", а письмо не приходит на почту. В этом случае нужно внимательно проверить строку:

if (mail("[email protected]", "Заказ с сайта", "ФИО:".$fio.". E-mail: ".$email ,"From: [email protected] \r\n"))

Вместо [email protected] должен быть email адрес на который нужно отправить письмо, а вместо [email protected] должен быть существующий email данного сайта. Например для сайта сайт это будет . Только в этом случае письмо с данными из формы будет отправлено.

Тамара Воротынцева – директор по развитию тренинговой компании «БИЗНЕС ПАРТНЕР» (Москва). Практикующий бизнес-тренер, автор книги «Строим систему обучения персонала» и публикаций в деловых изданиях России, Казахстана и Украины. Создатель интернет-рассылки: «E-mail переписка в бизнесе» на сервере subscribe.ru! Книга является практическим пособием для деловых людей, ведущих активную переписку с клиентами и партнерами. В ней представлены инструменты, которые помогут сделать электронное общение эффективным, оптимальным по времени и результату, максимально соответствующим нормам и правилам, принятым в современном деловом сообществе. Автор дает практические советы, иллюстрирует свои наблюдения случаями из жизни, приводит аргументированные выводы. Текст книги богат узнаваемыми примерами реальной деловой переписки. Автор делится своими наблюдениями, приемами, «хитростями», которые способны существенно повлиять на эффективность и результативность делового электронного письма. Если вы – деловой человек и для вас важно писать оперативно, лаконично, грамотно, в соответствии в правилами хорошего делового тона, – эта книга станет вам надежным помощником.

Книга:

Работая с полями «Кому» («То»), «Копия» («Сс»), «Скрытая копия» («Всс»), помните, что это важная часть электронного письма, влияющая на дальнейшие действия участников переписки.

«Кому» («То»). В это поле помещается адрес получателя, которому непосредственно адресовано письмо и содержащиеся в нем сведения. От основного получателя автор письма и ждет ответ. Если в это поле помещены два адресата, значит автор письма ждет ответ от каждого или кого-то из них (имейте это в виду, если ваше имя значится в списке получателей). При этом (если вы – отправитель) имейте в виду, что включать в поле «Кому» («То») более одного адресата не очень целесообразно. На письмо, отправленное нескольким адресатам, можно не получить ни одного ответа, так как каждый будет думать, что ответит другой.


Если письмо адресовано вам, но содержит в копии других получателей, обязательно используйте при ответе кнопку «Ответить всем» («Reply ALL»)! Это позволит сохранить круг адресатов, который обозначил инициатор переписки.

«Копия» («Сс»). В это поле помещайте адреса получателей, которые, по вашему мнению, должны быть в курсе переписки по данному вопросу. Эти адресаты получают информацию только «к сведению». Получатель в копии обычно не должен отвечать на письмо, но при необходимости может это сделать.


ОБРАТИТЕ ВНИМАНИЕ. ЭТО ВАЖНО!

В случае если ваше имя находится в поле «Копия» («Сс»), то, вступая в переписку, помните, что бывают ситуации, когда крайне важно быть вежливым. Используйте фразы: «Позвольте присоединиться к обсуждению», или «Позвольте присоединиться к вашему диалогу», или «Позвольте высказать мое мнение».

«Скрытая копия» («Всс»). Это поле в некоторых компаниях запрещено к использованию, так как является инструментом, противоречащим этическим нормам общения. Назначение этого поля – приглашение адресату стать «тайным свидетелем».

Если в вашей деловой практике принято использовать это поле в работе, учитывайте следующее. Получатель, находящийся в «скрытой копии», остается невидимым для основного получателя и для адресатов, стоящих в копии. Иногда бывает нелишним отправителю и «тайному получателю» иметь предварительную договоренность (или последующую информированность) о причине и целях такого способа информирования.


ОБРАТИТЕ ВНИМАНИЕ. ЭТО ВАЖНО!

«Скрытому» получателю категорически не следует вступать в переписку из этого поля.

Электронную почту используют не только для отправления сообщений, но и для пересылки файлов (документов, фотографий и др.). Они называются вложенными или прикрепленными.

Вложенный или прикрепленный файл (аттачмент) — это какой-то файл с компьютера, который мы добавляем к письму для пересылки его по электронной почте.

Как прикрепить файл к письму и отправить его

Допустим, я хочу, чтобы документ, который есть на моем компьютере, оказался на компьютере моего коллеги. Я знаю адрес его электронной почты, значит, могу со своего ящика написать письмо и прикрепить к нему файл.

Когда коллега зайдет в свою почту, он увидит новое сообщение, внутри которого будет документ. Его он сможет открыть прямо в почте или скачать на свой компьютер.

Технология пересылки файлов следующая:

  1. Открываем свой электронный ящик.
  2. Пишем письмо: указываем адрес почты получателя, тему и, если необходимо, печатаем сообщение.
  3. Нажимаем специальную кнопку для добавления файла.
  4. В открывшемся окошке выбираем файл с компьютера.
  5. Отправляем письмо, нажав на соответствующую кнопку.

Пример

1. Открываю свой электронный ящик и нажимаю на кнопку написания письма.

Яндекс.Почта: Mail.ru: Gmail.com:

2. Печатаю адрес того, кому хочу отправить файл, и указываю тему.

Текст можно и не набирать, ведь мне нужно только переслать файл. Но я его обычно печатаю: здороваюсь, объясняю, что именно пересылаю и почему.

3. Для прикрепления файла нажимаю на специальную кнопку вверху или внизу (над или под частью для ввода текста).

Яндекс.Почта: Mail.ru: Gmail.com:

4. Открывается небольшое окошко с файлами и папками моего компьютера. В нем я должен найти то, что хочу отправить.

Допустим, мне нужно переслать документ, который находится на моем компьютере в Локальном диске D в папке Договоры. Значит, в окошке открываю Локальный диск D:

И открываю папку Договоры:

Показываются файлы, которые есть в этой папке. Нахожу среди них тот, который хочу отправить, и щелкаю по нему два раза левой кнопкой мышки.

Окошко исчезает, а мой документ появляется над или под кнопкой прикрепления.

Сразу после этого мое сообщение с вложенным документом уйдет по указанному адресу. Вот как его увидит получатель:

Обратите внимание на иконку с изображением скрепки в конце. Таким образом почтовый сайт показывает, что внутри есть прикрепленный файл.

Открыв письмо, получатель увидит и текст, и документ, которой сможет посмотреть или скачать на свой компьютер.

Как добавить несколько файлов к письму

В одно письмо можно добавить несколько файлов любого типа. Это могут быть и фотографии, и документы, и музыка и даже видео.

Для этого вовсе необязательно посылать несколько писем - можно написать одно и добавить к нему всё, что хотим отправить. Происходит это так: пишем письмо, добавляем к нему один файл, затем, точно также, другой, третий и так далее.

А что делать, если их не одни-два, а больше десяти? Можно ли добавить папку целиком, а не каждый файл по отдельности?

К сожалению, отправить папку по электронной почте нельзя. Но ее можно заархивировать и прикрепить к письму.

Сделать это можно прямо в окошке, через которое добавляем файл для отправки. Щелкаем правой кнопкой мышки по папке, из списка выбираем 7-Zip или WinRAR и создаем архив.

Затем там же выбираем только что созданный архив, то есть щелкаем по нему два раза левой кнопкой мышки.

Архив, в котором находится нужная для пересылки папка, прикрепляется к письму. Остается только его отправить.

Нюансы

Если Вы планируете отправить более трех файлов в одном письме, то хорошим тоном считается заархивировать их.

Например, я хочу переслать другу десять фотографий. Можно, конечно, отправить десять писем, в каждое из которых добавить по фото. Но это неудобно ни для меня, ни, тем более, для него. Поэтому я решаю послать одно письмо, к которому прикрепить все фотографии.

В этом случае правильнее будет положить их в отельную папку на самом компьютере, потом заархивировать ее и при отправке письма добавить получившийся архив.

В итоге отправится один файл, а не десять. Моему другу будет проще его скачать на компьютер и разархивировать, чем смотреть (скачивать) каждую фотографию по отдельности.

Перед пересылкой фотографий по электронной почте их следует сжимать (уменьшать размер).

Это больше, чем правило хорошего тона. Это необходимость! Но, к сожалению, многие пользователи об этом даже не догадываются.

Подробнее о том, зачем это нужно и как сделать, Вы узнаете из урока «Сжатие фото ».

Задание

  1. Отправьте со своего электронного ящика письмо с вложенным файлом на свой же адрес. То есть в поле «Кому» напечатайте адрес своей электронной почты. После отправки Вы получите от себя же письмо с этим вложенным файлом.
  2. Откройте свое письмо и попробуйте посмотреть присланный файл прямо в почте. Затем скачайте его на компьютер и откройте непосредственно с него.
  3. Отправьте на свой адрес письма с несколькими вложенными файлами (как по отдельности, так и заархивированными).
  4. Попробуйте отправить фотографии, предварительно сжав их.

Вам понравился материал? Вы можете угостить автора чашечкой ароматного кофе и оставить ему доброе пожелание 🙂


Ваше угощение будет обязательно доставлено до автора. Чашка кофе - это не много, но она согревает и придает силы творить дальше. Вы можете выбрать, чем угостить автора.

Чашка кофе из ПитСтопа за 60 руб.

Крепкий эспрессо за 110 руб.

Восхитительное Латте за 175 руб.

X Хотите оставить пожелание для автора?

Оставить пожелание Пропустить

Почти во всех случаях общение с государственными органами или юридическими лицами лучше осуществлять через заказное письмо. Такая форма общения всегда позволяет доказать, что Вы обращались со своим вопросом. Но как правильно направлять письма и потом доказывать?

Обязанность направления корреспонденции как заказное письмо неоднократно упоминается в действующем законодательстве РФ. Например, ч. 3 ст. 125 Арбитражного процессуального кодекса РФ устанавливает, что «истец обязан направить другим лицам, участвующим в деле, копии искового заявления и прилагаемых к нему документов, которые у них отсутствуют, заказным письмом с уведомлением о вручении «, или ч. 4 ст. 45 Жилищного кодекса гласит, что «собственник … по инициативе которых созывается общее собрание собственников помещений в многоквартирном доме, обязаны сообщить собственникам помещений … сообщение о проведении общего собрания … должно быть направлено каждому собственнику помещения в данном доме заказным письмом » также подобные нормы содержатся и в других нормативных актах.

Правильное уведомление стороны стало очень важным после изменения Гражданского кодекса РФ в 2013 году и введения новой статьи 165.1 «Юридически значимые сообщения» с этого момента ответственность за недоставленное сообщение легла на получателя.

Раньше как было, отправили Вам письмо по адресу прописки, а Вы его не получили. Например, в этом письме было предложение о выкупе Вашей доли в праве собственности квартиры. Т.к. Вы не проявили желание выкупить долю, то сделка состоялась без Вас. Вы узнаете и подаете иск в суд. Показываете документы, что 10 лет не живете по адресу прописки и суд встает на Вашу сторону, т.к. продавец должен был предпринять меры к Вашему розыску и сделка отменяется. В свое время очень распространенная схема мошенничества, т.к. денег то уже не будет. А сейчас? А сейчас все, подобная схема закрыта именно статьей 165.1 ГК РФ. Теперь Вы несете ответственность за то, что письмо должно быть Вами получено.

С момента принятия этой нормы усилилось внимание к факту подтверждения доставки письма адресату. Ранее варианта было два: уведомление о получении, которое приходилось долго ждать; информация с сайта почты России. Второй вариант является более оперативным уведомлением, но встал вопрос о документальном подтверждении данного доказательства. В суд стороны стали направлять копии экрана (скриншот) с сайта Почты России, с данными по получению письма и судье было необходимо проверять данную информацию проводя проверку.

Совсем недавно (начало февраля 2016 года) появилась возможность получения письменного подтверждения с сайта pochta.ru защищенное цифровое подписью. Распечатанное подтверждение имеет специальный цифровой код, действительность которого можно проверить.

Наши рекомендации: рекомендуем направлять корреспонденцию как заказное письмо, сохранять квитанцию как доказательство отправки и распечатывать с сайта pochta.ru информацию защищенную цифровой подписью. При соблюдении этой рекомендации сомнений в Вашем доказательстве не будет.

Если Вам необходимо в будущем доказывать получения не просто сообщения, а конкретного документа, например «Требование выкупить долю» или «Согласие на условия договора» или «Отзыв согласия на обработку персональных данных», то направляйте письмо не заказным, а ценным. При отправке ценного письма в описи будет указываться наименование направляемого Вами документа, что позволит впоследствии подтвердить факт его направления.

Не забывайте ставить адресатов письма в скрытую копию, если не все получатели должны видеть друг друга.


BCC, или Blind Carbon Copy - это то, что в русском языке называется скрытой копией. Благодаря ей получатель не видит всех остальных адресов, куда приходит письмо. Эта функция встречается во всех почтовых сервисах, от Outlook до Gmail, и если вы до сих пор не знаете о её существовании, то вполне возможно, что ваши коллеги и клиенты вас недолюбливают.

В первую очередь скрытая копия - это негласный этикет электронной переписки. Как не стоит , точно так же не стоит никому показывать чужие почтовые адреса. И даже если вы всё-таки нажали на любимую кнопку «Ответить всем», до получателей в BCC ваше сообщение не дойдёт.

Не всем это известно, но BCC не только защищает электронные адреса от посторонних глаз, но и работает как своеобразный антивирус, не пропуская спам на ваш компьютер. Всё из-за того, что вирусам, перемещающимся по электронной почте, недоступны скрытые электронные адреса. И хотя почтовый адрес в интернете не настолько личный и важный, как домашний, в открытом доступе оставлять его не стоит - иначе спама, скорее всего, не избежать.

Крэйг Чайлд

журналист

«Скрытая копия - это та графа, куда вы помещаете контакты, которые не должны быть видны другим людям. Обычно её используют для рассылок и спама, но ещё это поле удобно, чтобы соблюдать приличия и не показывать почтовые адреса людям со стороны. Я думаю, что ошибочно полагать, будто людям комфортно, когда их адреса видят другие люди. Например, если это приглашение на вечеринку: не все знакомы друг с другом, поэтому часто бывает неуместно, чтобы люди видели контакты друг друга».



Если заметили ошибку, выделите фрагмент текста и нажмите Ctrl+Enter
ПОДЕЛИТЬСЯ:
NexxDigital - компьютеры и операционные системы