我的PHP联系表单到PHP邮件不起作用

时间:2014-01-11 15:51:59

标签: php html forms email

我对HTML和CSS有一个很好的理解,但在PHP方面却完全是新手。我已经对网络进行了搜索并尝试了多个不同的教程,但我似乎无法定制php代码以使用我的联系页面的电子邮件表单。 (www.richseeley.com/contact)

最终,我希望这个表单能够确认通过弹出窗口发送的消息,而不会离开页面,但到目前为止,我甚至无法让它在最基本的意义上工作。 目前,它正在回应“感谢您使用我们的邮件表格”,但电子邮件没有发送。

以下是我的联系表单的html编码:

<div id="form-main">
                  <div id="form-div">
                    <form class="form" id="form1" action="scripts/test.php" method="post" enctype="text/plain">

                      <input name="name" type="text" class="feedback-input" placeholder="Name" id="name" />

                      <input name="email" type="text" class="feedback-input" id="email" placeholder="Email" />                    

                      <textarea name="message" class="feedback-input" id="message" placeholder="Message"></textarea>  

                      <input type="submit" value="SEND" id="button-blue"/>

                    </form>
                 </div>
                </div>

以下是我最近尝试使用的PHP代码:

        <?php
  //send email
  $name = $_REQUEST['name'] ;
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;
  mail("r*******@gmail.com", $name,
  $message, "From:" . $email);
  echo "Thank you for using our mail form";
?>

我很欣赏这是一个我想解决的相当简单的问题,但我花了几个小时没有成功,我真的不想让我的工作/网站设计受到损害,并且结束正如基本教程所提供的那样,使用不那么风格化的东西。

1 个答案:

答案 0 :(得分:0)

我能想到的唯一方法就是:

    <?php
if (isset($_REQUEST['email']))
//if "email" is filled out, send email
  {
  echo <p>Are you sure you want to do this?</p>

<form action="send_mail.php" method="post">
    <input type="submit" name="ok" value="OK" />
    <input type="submit" name="cancel" value="Cancel" />
</form>
?>

send_mail.php:

    <?php>
    //send email
    if (isset($_POST['ok'])) {
    $name = $_REQUEST['name'] ;
      $email = $_REQUEST['email'] ;
      $message = $_REQUEST['message'] ;
      mail("richsee******@****.com", $name,
      $message, "From:" . $email);
      echo "Thank you for using our mail form";
      }
}

if (isset($_POST['cancel'])) {
    header('Location: didnt_confirm.html");
}
     ?>

另外,你的php似乎错了,容易受到攻击,但你所要求的只是确认;)

如果您担心漏洞(标题注入),可以阅读this.