html 和 php 填写联系表中的主题行

html and php fill subject line from contact form

所以我创建了一个页面,其中包含几个 hyperlink 到 Web 表单(例如,volvo 会 link 到一个通过电子邮件发送到 volvo 网站的表单,saab 会 link 将电子邮件形成为 saab 形式)但是我在更改主题行时遇到了一些麻烦。而不是创建 8 或 9 个不同的 php 发送电子邮件文件。我可以简单地更改表单中的主题行吗?这是我正在尝试但无法进行的操作?我只想从我的表格中取出标题,每次都用它来填写主题行。

php 发送邮件的文件

$email_subject = $_POST["subject"];

html 格式为

的文件
<h1 name="subject" value="Volvo Interest">Volvo Form</h1>

我不知道是否需要,但这是我的邮件 header

$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 表单位于不同的位置,那么请不要忘记指定 action="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 语句 select 用于主题的正确词语.这样别人就不能修改你的话了:

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";
}