php - 503 在 PHP 中传递 URL 中的句点时服务不可用
问题描述
我正在一个网站上工作,您可以在其中提供联系方式并将其提交到 PHP 页面。这些联系方式将使用原生 PHPmail()
功能发送到电子邮件地址。但是,一切似乎都很好,并且可以使用以下代码:
<?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
而不是手动更改 URL 栏my%40email.com
并且它有效。请注意,我删除了 和 之间的句email
点com
。
有任何想法吗?
解决方案
推荐阅读
- clojure - 在 mac os 10.13.6 下安装 clojure lein 的问题
- python - 如何在 python 中测试 Klein 服务器
- jquery - 使用 JQuery 插入 XML 将属性更改为小写
- java - 为什么当我修改原始 ArrayList 时复制的 ArrayList 会被修改
- c# - TCP C++ 客户端从 ac# 服务器接收字节数组
- ionic-framework - 离子应用程序的构建问题
- css - 获取内插字符串的值
- c# - 如何让客户收到他们填写的表格的副本,作为 ASP.NET + C# 中的 PDF
- react-native - React Native 与 Redux:mapStateToProps()-函数未更新
- ios - obj-c中如何拦截应用程序更新事件?