我已经花了几个小时在这个简单的代码。电子邮件到达,但名称电子邮件通讯等字段为空。它一定是愚蠢的,但它令我疯狂,它只是简单的形式,它不工作。 另外,如果你知道,你能否帮我阻止用户点击表单两次并发送多封电子邮件。万分感谢!错误的PHP电子邮件形式
<?php
$name = strip_tags(htmlspecialchars($_GET['name']));
$email_address = strip_tags(htmlspecialchars($_GET['email']));
$message = strip_tags(htmlspecialchars($_GET['message']));
$newsletter = strip_tags(htmlspecialchars($_GET['newsletter']));
// Create the email and send the message
$to = '[email protected]';
$email_subject = "Message from from : $name";
$email_body = "Message from form arrived.\n\n"."Message details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $newsletter\n\nMessage:\n$message";
$headers = "From: [email protected]\n";
$headers .= "Reply-To: $email_address";
mail($to,$email_subject,$email_body,$headers);
?>
<form method="GET">
<span>Name</span>
<input type="text" name="name" placeholder="Your name"><br />
<span>E-mail</span>
<input type="email" name="email" placeholder="E-mail"><br />
<div>Message</div>
<textarea type="text" name="message" rows="8" cols="80"></textarea><br />
<input type="checkbox" name="newsletter" id="newsletter">
<label for="newsletter">I wold like to get email infromations</label><br />
<button type="submit">Send</button>
<span class="message"></span>
</form>
那么,'$ _GET'实际上包含了什么?调试揭示了什么(打印正文,启用error_reporting +通知)?你从哪里冒出来的无意义?目前为止,您的搜索/搜索功能是什么? (一个中有两个问题在这里不是问题。) – mario
调用'htmlspechialchars()'没有任何意义。你不会把这些字符串放在html标记中。 – arkascha
防止发送表单两次的最好方法是停止将这两个部分放在一个文件中的习惯:表单和表单处理代码。它们属于单独的文件。这样,表单在浏览器视图中被删除,并且您可以显示一些确认或其他内容。 – arkascha