电子邮件中的联系表单不返回值

时间:2013-09-26 13:38:31

标签: php forms mailer

我正在使用CKEditor创建一个html mailer,其中的联系表单将发送到电子邮件。
问题是,在电子邮件中提交该表格没有收到任何价值。

通过电子邮件联系表格(代码)

<form action="http://techindiainfotech.com/mail.php" method="post" name="test">
    <p>Your Name: <input maxlength="75" name="name" size="75" type="text" /></p>

    <p>Mobile Number: <input maxlength="10" name="mobile" size="10" type="text" /></p>

    <p>Business Name: <input maxlength="100" name="business" size="100" type="text" /></p>

    <p><input name="sub" type="submit" value="Submit" /></p>
</form>

处理程序 - mail.php

if ($_POST['sub'] != '') {
    unset($_POST['sub']);
    echo "Details received:<br>";
    foreach ($_POST as $val) {
        echo "$val<br>";
    }
} else {
    header("Location: http://www.techindiainfotech.com/files/contact_us.php");
    exit();
}

来自gmail的消息文字的屏幕截图

Message Text Garbled

3 个答案:

答案 0 :(得分:2)

if ($_POST['sub'] != '') {
    unset($_POST['sub']);

上述代码表示:如果$_POST['sub']不是空字符串,请评估以下语句。

如果您的表单未提交,$_POST['sub'];将被取消定义,PHP将发出错误Undefined index

我会使用isset()来正确检查表单是否已提交。

if (isset($_POST['sub'])) {
    # code ...
}

以下内容应该有效:

if (isset($_POST['sub'])) 
{
    unset($_POST['sub']);
    echo "Details received:<br>";
    foreach ($_POST as $val) 
    {
        echo "$val<br>";
    }
}

答案 1 :(得分:1)

您的表单非常简单且$_POST循环,它缩小了错误来源:

  • 文件库:脚本不在您期望的文件夹中
  • CKEditor抛出HTML,要么剥离它,要么......看看HTML源代码。
  • 在mail.php
  • 的开头使用print_r($_POST);
  • 启用PHP调试/错误报告:http://blog.flowl.info/2013/enable-display-php-errors/
  • 如果您有javascript,我们无法在您的示例代码中看到,请将其删除以进行进一步测试

<强>更新

  • CKEditor以一种不再被name属性标记的方式更改您的输入,或者以任何其他无效形式呈现该表单(不要认为这是问题)

我将您的示例代码复制到我的网络服务器上并且它正在运行。您可能在实际代码中有一些内容未出现在上面的代码中。

答案 2 :(得分:-1)

除了一个action格式之外,一切都很好 我将表单提交到http://techindiainfotech.com/mail.php,但由于.htaccess它被重定向到http://www.techindiainfotech.com/mail.php,这就是请求丢失的原因(我不是在这里得到适当的词。)

所以,我只需要更改我的action属性,即将我的表单提交到http://www.techindiainfotech.com/mail.php而不是http://techindiainfotech.com/mail.php