localhost联系表格不起作用?

时间:2014-03-28 13:59:35

标签: php html forms email

它说我有一个错误,我希望我做的一切都正确。我现在正在使用localhost ..这可能是问题吗?如果不是的话。

我在这一行收到错误

$name = $_POST['name'];

代码:

<?php
$name = $_POST['name'];
$to = "Lennyperez@mail.com";
$subject = "add this";

mail ($to, $subject, $name);

?>


   <form action="submit.php" method="post" name="contact_form">
       <input name="name" id="name" type="text">
       <input type="submit" name="submit" id="sumitbtn" value="submit">
   </form>

6 个答案:

答案 0 :(得分:1)

可能有很多因素导致您的邮件表格出现问题。

  • 检查系统上是否已安装并正确配置mail()

  • 使用其他headers();一个是From:代码中缺少的mail(),但不是必需的。 邮件仍会尝试发送,但最终可能会被发送到垃圾邮件或被忽略。

  • 为提交按钮和<?php if (isset($_POST['submit']) && !empty($_POST['name'])){ $name = $_POST['name']; $to = "email@example.com"; $subject = "add this"; $headers="From: $name <email@example.com>"; $sent = mail($to, $subject, $name, $headers); if($sent) { echo "Success."; } else { echo 'Sorry, your message could not be sent.'; } } // brace for submit conditional statement ?> 成功使用条件语句,包括检查字段是否为空。

以下内容已在我的INBOX中成功测试,发送和接收。

PHP

<?php

    if (isset($_POST['submit']) && !empty($_POST['name'])){

        $name = $_POST['name'];
        $from = "user@example.com";
        $to = "your@example.com";

        $subject = "add this";
        $headers="From: $name <$from>";

        $sent = mail($to, $subject, $name, $headers);

        if($sent) {

            echo "Success";

           } else {
            echo 'Sorry, your message could not be sent.';
           }
    } // brace for submit conditional statement

?>

您还可以使用以下内容:

{{1}}

<强>脚注:

  • 检查服务器日志。

答案 1 :(得分:0)

mail()在没有外部库的情况下无法在localhost上运行。

此外,您需要在isset

上执行$_POST['name'];
if (isset($_POST)){
  $name    = $_POST['name'];
  $to      = "email@email.com";
  $subject = "this";

  mail ($to, $subject, $name);
}

另外不要忘记查看标题!

答案 2 :(得分:0)

执行以下操作:在未提交表单之前,未设置$_POST['name']变量

<?php 
if (isset($_POST)) {
    $name = $_POST['name'];
    $to = "Lennyperez@mail.com";
    $subject = "add this";

    mail ($to, $subject, $name);
}
?>

答案 3 :(得分:0)

首先让你的工作:

<?php
mail("Lennyperez@mail.com", "add this", "name");

,再次提问。

答案 4 :(得分:0)

当页面加载时,它没有找到帖子变量,这是正常的,因为你没有点击提交按钮,只有在按下提交按钮后你的$_POST['name']才会存在。

解决方案1:

添加条件,仅当单击按钮提交时才会发送邮件。

<?php 
if (isset($_POST['name'])) {

    $name = $_POST['name'];
    $to = "Lennyperez@mail.com";
    $subject = "add this";

    mail ($to, $subject, $name);
}
?>

解决方案2:

包含您的操作页面

中的表单的单独HTML文件

答案 5 :(得分:0)

我假设你收到了未定义的通知,如果是这样,请放弃其中一个步骤。

  1. Add @$name= $_POST['name']; OR
  2. error_reporting(E_ALL ^ E_NOTICE);