Поэтому я создал страницу, которая содержит несколько гиперссылок на веб-формы (например, volvo будет ссылаться на форму, которая отправляет электронную почту на веб-сайт volvo, saab будет ссылаться на форму, которая отправляет электронную почту на форму saab), однако у меня возникли некоторые проблемы при изменении Сюжетная линия. Вместо того, чтобы создавать 8 или 9 различных файлов php для отправки электронной почты. Могу ли я просто изменить строку темы из формы? Вот то, что я пытался, но не могу добиться успеха? Я просто хочу взять заголовок из моей формы и использовать его для заполнения строки темы каждый раз.
PHP-файл, который отправляет электронную почту
$email_subject = $_POST["subject"];
HTML-файл с формой
<h1 name="subject" value="Volvo Interest">Volvo Form</h1>
Я не знаю, нужно ли это, но вот мой заголовок также
$headers = 'From: '.$email_from."\r\n".
'Reply-To: '.$email_from."\r\n" .
'X-Mailer: PHP/' . phpversion();
@mail($email_to, $email_subject, $email_message, $headers);
С их помощью я просто получаю (без темы)
Итак, чтобы переменная SUBJECT отправлялась в скрипт PHP без видимого текстового поля ввода, вы можете просто использовать это:
<form action="" method="POST">
Volvo Form: <input type="hidden" name="subject" value="Volvo Interest">
</form>
Да, и если ваш PHP находится в другом месте, чем HTML-форма, не забудьте указать действие = «your_php_file_location_here.php» вместо того, чтобы оставить это поле пустым, оно будет отображаться в том же месте, в котором находится браузер при заполнении формы.
… Исходя из того, что, как мне кажется, я понимаю из вашего вопроса, вы не хотите, чтобы хакеры изменили эту переменную до того, как она достигнет PHP-сценария, поэтому в этом случае я бы НЕ предлагал вводить слова «Volvo Interest» во входные данные. Вместо этого перейдите с таким номером в HTML-форма:
<form action="" method="POST">
Volvo Form: <input type="hidden" name="subject" value="3">
</form>
… тогда в вашем PHP скрипт, используйте оператор switch / case, чтобы выбрать правильные слова для использования в теме. Таким образом, люди не могут изменить ваши слова:
switch($_POST['subject']){
case 1:
$email_subject = "Acura Interest";
break;
case 2:
$email_subject = "Saab Interest";
break;
case 3:
$email_subject = "Volvo Interest";
break;
// case 4: ...
default: // Just in case somebody sends a number case that does not exist
$email_subject = "Unknown Interest";
}
Других решений пока нет …