我在页面上有一个联系表单,可以将表单的详细信息发送到电子邮件地址。你可以在这里查看,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 = "AN_EMAIL@ADDRESS.COM";
$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有一个真实的电子邮件地址,而不是AN_EMAIL@ADDRESS.COM。一旦我点击提交按钮,我就被带到了mailer.php,但我注意到了回声“blarg!”所以我的猜测是电子邮件没有被发送。
谢谢!
答案 0 :(得分:10)
你应该改变
if(isset($_POST['submit'])) {
到
if(isset($_POST['saveForm'])) {
答案 1 :(得分:2)
尝试更改
if(isset($_POST['submit'])) {
到
if(isset($_POST['saveForm'])) {
这是因为$ _POST查找表单输入的名称,而不是类型。
答案 2 :(得分:2)
如果上面没有任何帮助,请尝试查看是否可以调试代码。
Catching PHP mail() errors and showing reasonable user error message
答案 3 :(得分:0)
在您的PHP代码中,检查是否设置了$_POST['submit']
,但是在HTML代码中,您为提交按钮指定了saveForm
的名称,因此您应该更改该行
if(isset($_POST['submit'])) {
到
if(isset($_POST['saveForm'])) {
希望这有助于你:)
答案 4 :(得分:0)
在你的html中你有
<input id="button" name="saveForm" class="btTxt submit" type="submit" value="Submit" />
但是当你检查$_POST["submit"]
时,在php文件中,这是不对的。
您需要将if(isset($_POST['submit']))
更改为if(isset($_POST['saveForm']))
或if(isset($_POST['submit']))
至if(isset($_POST))
答案 5 :(得分:0)
某些电子邮件服务器在没有适当标题的情况下不接受电子邮件,但您尚未提供任何电子邮件服务器。这就是我使用的。
http://us2.php.net/manual/en/function.mail.php
$header = "From: ".$fromText."\r\n";
$header .= "Cc: ".$ccText."\n";
$header .= "Reply-To : ".$fromText."\r\n";
$header .= "Return-Path : ".$fromText."\r\n";
$header .= "X-Mailer: PHP\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: text/plain; charset=iso-8859-1\r\n";
mail($toText, $subjectText, $msgText, $header, '-f'.$fromText);
答案 6 :(得分:0)
你的问题是它倒出了咆哮。 这肯定是帖子没有到达你的
代码 - &GT;
mail($to, $subject, $body);
并且提交的名称应更改为
顺便说一下:)..'saveForm'
刚试过
mail($to, $subject, $body);
在你的x.php
中,将其上传并传递给主题和正文
如果它被发送,那么邮件功能可以正常工作。
if(@mail($emailRecipient, $subject, $message, $headers))
{
echo "Mail Sent Successfully";
}else{
echo "Mail Not Sent";
}
这也是我在stackoverflow中找到的一个很好的代码 检查邮件功能是否有效。
答案 7 :(得分:0)
if(isset($_POST['submit'])) {
saveForm
if(isset($_POST['saveForm'])) {
答案 8 :(得分:-1)