Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/260.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $\u发送HTML电子邮件时POST不起作用_Php_Html_Forms_Email_Post - Fatal编程技术网

Php $\u发送HTML电子邮件时POST不起作用

Php $\u发送HTML电子邮件时POST不起作用,php,html,forms,email,post,Php,Html,Forms,Email,Post,我一直在想我的代码出了什么问题。我一直收到$\u POST不起作用。这是我的HTML代码: <form id="EmailForm" action="mailForm.php" method="post" onsubmit="validateForm()" enctype="text/plain"> <div> Name: <input type="text" value="" name="name" size="30" /> Ema

我一直在想我的代码出了什么问题。我一直收到
$\u POST
不起作用。这是我的HTML代码:

<form id="EmailForm" action="mailForm.php" method="post" 
  onsubmit="validateForm()" enctype="text/plain">
  <div>
    Name: <input type="text" value="" name="name" size="30" />
    Email: <input type="text" value="" name="email" size="30" />
    Subject: <input type="text" value="" name="subject" size="60" />
    Message: <br />
    <textarea name="message" rows="5" cols="60"></textarea>
    <input type="submit" value="Send" />
  </div>
</form>
到目前为止,我可以收到发送的电子邮件,但所有电子邮件都是空的。名称或电子邮件未显示,但已从web托管服务更改为默认名称。没有名字,没有电子邮件,没有主题,没有消息。在
mailForm.php
,我只得到了以下内容:

您的电子邮件已发送。谢谢您使用我们的邮寄表格。
姓名:
电邮:
主题:
信息:

我试过
echo$\u POST[“name”];echo$\u POST[“email”]
但得到了空页。

只需删除
enctype=“text/plain”


在本例中,您不应在您的
标记中使用
enctype=“text/plain”

如果使用该代码,php将不会在
$\u POST
中显示表单元素

php有一个名为
$HTTP\u RAW\u POST\u DATA
的变量,当使用
enctype=“text/plain”
时,它会将发布的数据作为简单字符串存储在其中

因此,HTML代码中的
标记应为:

<form id="EmailForm" action="mailForm.php" method="post" onsubmit="validateForm()">

标记中的有效
enctype
值为:

application/x-www-form-urlencoded
multipart/form-data
应用程序/x-www-form-urlencoded:默认值。发送前对所有字符进行编码(空格转换为“+”符号,特殊字符转换为ASCII十六进制值)

多部分/表单数据:空格转换为“+”符号,但不编码特殊字符,也不编码字符。使用具有文件上载控件的表单时,此值是必需的

text/plain:空格转换为“+”符号,但不编码特殊字符


除了
text/plain
之外,其他两种方法将在$\u POST中作为数组提供…

您的代码容易受到标题中毒的影响,一旦激活,您可能会被用于发送spam@WebnetMobile:我预处理标题字段并检查php文件中的垃圾邮件,我只是没有把它放在这个论坛上,因为它与我的问题无关。不管怎样,谢谢提醒。
application/x-www-form-urlencoded
multipart/form-data
<form id="EmailForm" action="mailForm.php" method="post" onsubmit="validateForm()">