(TL; DR结尾)
我正在尝试将HTML表单集成到我的PHP文件中,以便一旦客户点击我页面上的“发送”按钮,邮件就会自动发送到所需的电子邮件。 HTML页面上还有很多其他代码,所以我只包含了表单。
<form method ="post"action="indexphp.php" id="mailform" name="mailform">
Navn: <input type="text" name="Navn" id="name" required><br>
Kontakt e-post: <input type="email" name="Epost" id="email" required><br>
Kontakt telefon: <input type="tel" name="Telefon" id="phone"><br>
Fest:<select name="Fest" form="mailform"><option value="Lokalfest">Lokalfest</option><option value="Hjemmefest">Hjemmefest</option></select id="subject"><br>
Kommune: <input type="text"name="Kommune"style="width:150px;" required id="message"><br>
Deltagere: <input type="text"name="Deltagere"style="width:40px;" required id="message"><br>
Rydding: <input type="checkbox"name="Rydding"style="width:40px;" id="message"><br>
Vasking: <input type="checkbox"name="Vasking"style="width:40px;" id="message"><br>
Dorvakt: <input type="checkbox"name="Dorvakt"style="width:40px;" id="message"><br>
Noe annet?: <input type="text"name="Ekstra"style="width:150px;" id="message"><br>
<input type="submit" value="Send">
这是我的PHP代码:
<?php
if(isset($_POST['mailform']))
$email = $_POST['email'] ;
$name = $_POST['name'] ;
$message = $_POST['message'] ;
$from = $_POST['email'] ;
$to = "desired mail adress, removed for privacy purposes";
$subject = $_POST['subject'] ;
$body = "From: $name\n E-mail: $email\n Message:\n $message";
$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
mail ($to, $subject, $body, $headers);
echo "<p>Bestillingen din har blitt sendt, du vil høre tilbake fra oss straks!</p>";
?>
发生的事情是,所有内容都正确发送到了我想要的电子邮件,但邮件的唯一内容是:“发件人:-电子邮件:-邮件:”。
邮件中也没有主题。
我在PHP中是一个完全的菜鸟,而在HTML中却是一个非常基础的人,因此,我感谢所有帮助和提示!
谢谢。
答案 0 :(得分:0)
为我们着想,您是否翻译了$ _POST值,或者这是您的实际代码?在您的表单中,例如,您没有字段名称。但是在您提供的代码中,您引用的是$ _POST ['subject']等。
$ _ POST中的键与通过表单提交的所有元素上的name属性匹配。您可以通过以下方式轻松地自己查看:
print_r($_POST);
尽管无关,HTML中的ID也是唯一的。您已经在您的许多元素中反复分配了消息ID。不过,这并不是当前问题的一个因素。
答案 1 :(得分:0)
我最终解决了我的问题栏的一个细节。 我的HTML后答案:
<form method ="post"action="indexphp.php" id="mailform" name="mailform">
Navn: <input type="text" name="Navn" id="name" required><br>
Kontakt e-post: <input type="email" name="Epost" id="email" required><br>
Kontakt telefon: <input type="tel" name="Telefon" id="phone"><br>
Fest:<select name="Fest" form="mailform"><option value="Lokalfest">Lokalfest</option><option value="Hjemmefest">Hjemmefest</option></select id="subject"><br>
Kommune: <input type="text"name="Kommune"style="width:150px;" required id="message"><br>
Deltagere: <input type="text"name="Deltagere"style="width:40px;" required id="message"><br>
Rydding: <input type="checkbox"name="Rydding"style="width:40px;" id="message"><br>
Vasking: <input type="checkbox"name="Vasking"style="width:40px;" id="message"><br>
Dorvakt: <input type="checkbox"name="Dorvakt"style="width:40px;" id="message"><br>
Noe annet?: <input type="text"name="Melding"style="width:150px;" id="message"><br>
<input type="submit" value="Send">
我的PHP后答案:
<?php
if(isset($_POST['mailform']))
$email = $_POST['Epost'] ;
$name = $_POST['Navn'] ;
$phone = $_POST['Telefon'] ;
$message = $_POST['Melding'] ;
$kommune = $_POST['Kommune'] ;
$deltagere = $_POST['Deltagere'] ;
$rydding = $_POST['Rydding'] ;
$vasking = $_POST['Vasking'] ;
$dorvakt = $_POST['Dorvakt'] ;
$to = "example@example.com";
$subject = $_POST['Fest'] ;
$body = "From: $name\n E-mail: $email\n Telefon: $phone\n Kommune: $kommune\n Deltagere: $deltagere\n Rydding: $rydding\n Vasking: $vasking\n Dorvakt: $dorvakt\n Message: $message\n";
$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
mail ($to, $subject, $body, $headers);
echo "<p>Bestillingen din har blitt sendt, du vil høre tilbake fra oss straks!</p>";
?>
我的电子邮件仍然没有显示。我对其进行了测试,并且效果很好,仅是在我收到的电子邮件中没有发件人,但这对我获得电话号码而言并不是一个大问题。
但是,我希望该电子邮件显示在我的电子邮件行的文本栏中。
我可以解决此问题,但我不想搞乱除了我提到的内容之外仍然有效的整个电子邮件过程。
我认为$ headers部分肯定有问题。