Встроенные данные в форме

281
20 августа 2017, 03:39

Приветствую! На сайте имеется 5 разных форм. Скрипт сохраняет в переменную данные из полей (имя, почта, телефон) и отправляет их на мою почту. Нужно сделать так, что бы по-мимо всей информации, что будут вводить пользователи сайта, в содержании письма было указанно название формы, с которой было отправлено сообщение. Как можно это реализовать?

<!DOCTYPE html> 
<html> 
<head> 
<meta charset="UTF-8"> 
<title>Обратная связь</title> 
<meta http-equiv="Refresh" content="4; URL=http://">  
</head> 
<body> 
 
<?php  
 
$sendto   = "@gmail.com";  
$username = $_POST['name'];   
$usertel = $_POST['telephone'];  
$usermail = $_POST['email'];  
$usluga = $_POST['usl']; 
 
// Формирование заголовка письма 
$subject  = "Новое сообщение"; 
$headers  = "From: " . strip_tags($usermail) . "\r\n"; 
$headers .= "Reply-To: ". strip_tags($usermail) . "\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html;charset=utf-8 \r\n"; 
 
// Формирование тела письма 
$msg  = "<html><body style='font-family:Arial,sans-serif;'>"; 
$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Cообщение с сайта</h2>\r\n"; 
$msg .= "<p><strong>От кого:</strong> ".$username."</p>\r\n"; 
$msg .= "<p><strong>Почта:</strong> ".$usermail."</p>\r\n"; 
$msg .= "<p><strong>Телефон:</strong> ".$usertel."</p>\r\n"; 
 
$msg .= "</body></html>"; 
 
// отправка сообщения 
if(@mail($sendto, $subject, $msg, $headers)) { 
	echo "<center><img src='images/spasibo.png'></center>"; 
} else { 
	echo "<center><img src='images/ne-otpravleno.png'></center>"; 
} 
 
?> 
 
</body> 
</html>

Answer 1
<form name="название_формы">
    // не видно для пользователя
    <input type="hidden" name="form-name" value="название_формы" />
</form>
Answer 2

К предыдущему ответу добавлю, что в серверном обработчике надо добавить

// Формирование тела письма 
$msg  = "<html><body style='font-family:Arial,sans-serif;'>"; 
$msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Cообщение с сайта</h2>\r\n"; 
$msg .= "<p><strong>От кого:</strong> ".$username."</p>\r\n"; 
$msg .= "<p><strong>Почта:</strong> ".$usermail."</p>\r\n"; 
$msg .= "<p><strong>Телефон:</strong> ".$usertel."</p>\r\n"; 
 
// Добавить эту строку 
$msg .= "<p><strong>Форма:</strong> ".$_REQUEST['form-name']."</p>\r\n"; 
 
$msg .= "</body></html>";

Answer 3

Не вижу почему это проблема? Достаточно дописать в формируемое сообщение, в блок кода с конкатенацией переменной $msg дополнение типа "Форма заказа одежды" или "Форма заказа обуви" или что там вам нужно. К примеру:

$msg .= "<p>Отправлено формой заказа раздела <strong>Одежда</strong></p>\r\n";

А что б было ещё удобней, можно прямо в теме письма указывать с какой формы пришло сообщение. Тогда нужно менять строку с переменной $subject. К примеру:

$subject  = "Новое сообщение, форма раздела Фурнитура";
READ ALSO
Работа с потоками в WPF

Работа с потоками в WPF

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

260
Передача значения из метода в метод

Передача значения из метода в метод

Добрый день! Есть метод заполняющий treeview дискамиЕсть метод заполняющий listview файлами и папками

265
C# печать файлов xlsx без установленного MS Office

C# печать файлов xlsx без установленного MS Office

Есть шаблоны в xlsx файле, из которых я программно генерирую отчетыЭти отчеты необходимо отправить на печать, но на машине не установлен MS Office

317
Передвижение игрока

Передвижение игрока

Пишу 2d top down шутер на Unity 20171 C#

241