【问题标题】:PHP EMAIL Generation not working when POST Method is used使用 POST 方法时 PHP EMAIL 生成不起作用
【发布时间】:2017-07-28 20:04:36
【问题描述】:

我制作了一个页面,它将接收 3 个变量并根据发送到该页面的数据发送电子邮件。但是当我从表单发送数据时,使用 POST 时会收到 HTTP ERROR 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>

【问题讨论】:

    标签: php


    【解决方案1】:

    你在这里打错了 -> $body="$_POST['body']; /* 双引号没有关闭 */ 加:你真的应该检查 POST 数据并清理它,因为它根本不安全

    【讨论】:

    • 代码有效。太感谢了。如何保护代码?有什么例子吗?对不起。我是新手。
    • 你有很多关于这个的帖子,从SO - question开始->请在搜索后阅读更多内容:)并接受两个答案之一,它会被关闭
    【解决方案2】:

    500 表示内部服务器错误。主要是源代码有错误。

    开关

    $body="$_POST['body'];
    

    $body=$_POST['body'];
    

    你真的应该为邮件函数转义你的参数。看看这个答案:

    escape mail fucntion

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多