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()">