我正在一个网站上,您可以在其中提供联系方式并将其提交到PHP页面。这些联系方式将使用本机PHP mail()
函数发送到电子邮件地址。但是,一切似乎都很好,并且可以使用以下代码:
<?php
$salutation = $_GET["salutation"];
$name = $_GET["name"];
$plan = $_GET["plan"];
$desc = $_GET["desc"];
$to = "example@email.com";
$subject = $desc;
$msg = "
<html>
<body>
<p>Test body</p>
</body>
</html>
";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to, $subject, $msg, $headers);
?>
提交表单时,URL栏的末尾更改为:
page.php?salutation=dhr&name=Kees+van+Voorthuizen&plan=basic&desc=Test+Description
正如我所说,这正常工作并且没有引发任何错误。
但是,当我在<input name="email" id="email" type="email">
标签内的联系人详细信息页面中添加<form>
并使用自己的电子邮件地址提交表单时,服务器将返回HTTP错误503。PHP代码使用电子邮件输入字段:
<?php
$salutation = $_GET["salutation"];
$name = $_GET["name"];
$email = $_GET["email"]; // <--- The only thing that has changed
$plan = $_GET["plan"];
$desc = $_GET["desc"];
$to = "example@email.com";
$subject = $desc;
$msg = "
<html>
<body>
<p>Test body</p>
</body>
</html>
";
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
mail($to, $subject, $msg, $headers);
?>
URL现在结束于:
page.php?salutation=dhr&name=Kees+van+Voorthuizen&email=my%40email.com&plan=basic&desc=Test+Description
我怀疑在电子邮件字段中包含句点('。')时会引发错误。我尝试使用my%40emailcom
而不是my%40email.com
手动更改URL栏,并且它起作用了。请注意,我删除了email
和com
之间的时间段。
有什么想法吗?