我做了一个页面,它将接收 3 个变量并根据发送到该页面的数据发送电子邮件。但是当我从表单发送数据时,当我使用 POST 时,我会收到 HTTP 错误 500。当使用 GET 方法以及在 url 中发送数据时,相同的代码正在工作。可能有什么错误?
<!doctype html>
<html>
<head>
<title>MAIL</title>
<meta charset="utf-8" />
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
</head>
<body>
<div>
<?php
$emailTo=$_POST['to_address'];
$subject=$_POST['subject'];
$body="$_POST['body'];
$headers="From: myemail@mysite.com";
if (mail($emailTo, $subject, $body, $headers)) {
echo "Mail sent successfully!";
} else {
echo "Mail not sent!";
}
?>
</div>
</body>
</html>
你在这里有一个错别字 -> $body="$_POST['body'];/* 双引号未关闭 */另外:您应该真正检查POST数据并进行消毒,因为它根本不安全
> 500 表示内部服务器错误。大多数情况下,源代码中存在错误。
开关
$body="$_POST['body'];
自
$body=$_POST['body'];
你真的应该真正转义邮件函数的参数。看看这个答案:
转义邮件功能