PHP 联系表格未发送
我的页面上有一个联系表单,可将表单的详细信息发送到电子邮件地址。您可以在这里查看它,www.wonder.ie
表单的 HTML 如下:
<form id="form" name="form27" class="wufoo page" enctype="multipart/form-data" method="post" action="mailer.php">
<ul>
<li id="foli1">
<label class="op" id="title1" for="Field1">Name</label>
<div><input id="Field1" name="name" type="text" class="op required" value="" maxlength="255" tabindex="1" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>
</li>
<li id="foli2">
<label class="op" id="title2" for="Field2">Email</label>
<div><input id="Field2" name="email" type="text" class="op required email" value="" maxlength="255" tabindex="2" onkeyup="handleInput(this);" onchange="handleInput(this);" /></div>
</li>
<li id="foli3">
<label class="op" id="title3" for="Field3">Inquiry</label>
<div><textarea id="Field3" name="message" class="op required" rows="10" cols="50" tabindex="3" onkeyup="handleInput(this);" onchange="handleInput(this);"></textarea></div>
</li>
</ul>
<input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />
</form>
对于我的 PHP 来说,它是这样的:
<?php
if(isset($_POST['submit'])) {
$to = "[email protected]";
$subject = "Email from Wonder.ie";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";
mail($to, $subject, $body);
} else {
echo "blarg!";
}
?>
一切看起来都正确吗?我知道我的表单名称与 PHP 正确匹配,但我不明白为什么我没有收到您知道的电子邮件 - 仅供参考,网站上的 PHP 有一个真实的电子邮件地址,而不是 [电子邮件受保护]。一旦我点击提交按钮,我就会被带到 mailer.php,但我注意到回声“blarg!”所以我的猜测是电子邮件没有被发送。
谢谢你!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
你应该更改
为
You should change
to
尝试更改
为
这是因为 $_POST 查找表单输入的名称,而不是类型。
Try changing
to
This is because $_POST looks for the name of a form input, not the type.
如果以上没有帮助,请尝试看看是否可以调试代码。
捕获 PHP mail() 错误并显示合理的用户错误消息
If nothing above helps, try and see if you can debug the code.
Catching PHP mail() errors and showing reasonable user error message
在您的 PHP 代码中,您检查是否设置了
$_POST['submit']
,但在您的 HTML 代码中,您为提交按钮指定了saveForm
的名称,因此您应该更改希望这对
您有帮助:)
In your PHP code you check if
$_POST['submit']
is set, but in your HTML code you gave the submit button the name ofsaveForm
so you should change the lineto
Hope this helped you :)
某些电子邮件服务器不会接受没有适当标头且您未提供标头的电子邮件。这就是我用的。
https://www.php.net/manual/en/function.mail。 php
Some email servers won't accept emails without appropriate headers and you haven't provided any. This is what I use.
https://www.php.net/manual/en/function.mail.php
您正在使用
if(isset($_POST['submit'])) {
但是,您已将提交按钮名称另存为
saveForm
所以,使用
if(isset($_POST['saveForm'])) {
you are using
if(isset($_POST['submit'])) {
but, you have save the submit button name as
saveForm
So, use
if(isset($_POST['saveForm'])) {
你的问题是它的倾诉。
这肯定是该帖子没有到达您的手中
mail($to, $subject, $body);
并且提交的名称应更改为
顺便说一下
:)..刚刚
在您的
x.php
中尝试过,上传它并更改为正确的内容,主题和正文如果已发送,则邮件功能正常。
这也是我在 stackoverflow 中找到的一个很好的代码
检查邮件功能是否有效。
your problem is it's pour out blarg.
it's definitely the post does not reach your
mail($to, $subject, $body);
and the name of the submit should be changed to
by the way :)..
just tried
in your
x.php
, upload it and chage to , subject and body to right thingsand if it's sent then the mail function works okay.
this is also a good code I have found in stackoverflow
to check if mail function works.
在你的 html 中
,但在 php 文件中,当你检查
$_POST["submit"]
时,这是不正确的。您需要将
if(isset($_POST['submit']))
更改为if(isset($_POST['saveForm']))
或
if (isset($_POST['提交']))
到if(isset($_POST))
In your html your have
but in the php file when you check for
$_POST["submit"]
, which is not right.You need to change
if(isset($_POST['submit']))
toif(isset($_POST['saveForm']))
or
if(isset($_POST['submit']))
toif(isset($_POST))
PHP 中 HTML 表单邮件发送指南 http://top-answers.net/webhost/web-托管.html
HTML form mail sending guide in PHP http://top-answers.net/webhost/web-hosting.html