PHP联系表单不发送

时间:2010-02-19 20:28:14

标签: php html forms contact

我在页面上有一个联系表单,可以将表单的详细信息发送到电子邮件地址。你可以在这里查看,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!”所以我的猜测是电子邮件没有被发送。

谢谢!

9 个答案:

答案 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)

PHP http://top-answers.net/webhost/web-hosting.html

中的HTML表单邮件发送指南