1

我需要一点帮助。我试图让我的 PHP 代码(保存为名为 lulzy.php 的单独文件)工作,但它只是不想。我做错了什么???

我的目标是让用户的消息直接进入我的电子邮件收件箱,并在用户填写我的网络表单时立即发送。

这是我的 JSFiddle 的链接:http: //jsfiddle.net/8S82T/127/

这是我的 PHP 代码:

<?php
  $name= $_REQUEST['name'] ;
  $email = $_REQUEST['email'] ;
  $message = $_REQUEST['message'] ;

  mail( "mymail@gmail.com", "Feedback Form Results",
    $message, "From: $email" );
  header( 'Location: Index.html' );
?>

一切都在我桌面上的同一个文件夹中。

这是我尝试填写整个表格并发送消息时收到的消息:

Firefox 在 /C:/Users/MS/Desktop/Slide Down Contact Me Form/lulzy.php 找不到文件

4

4 回答 4

6

您需要在每个表单输入上都有 name 属性

<input type="text" name ="fullName" placeholder="Please enter your full name here" required />

email和相同textarea,而method='post'不是action='post'

您的 php 需要在您的服务器上而不是在您的桌面上。

于 2013-05-26T13:39:33.173 回答
2

你需要method="POST"而不是action="post"

您两次声明操作,并没有声明您method的表单是如何发布到您的 PHP 脚本的

你也为你的名字属性像其他答案状态

于 2013-05-26T13:43:57.847 回答
2

您忘记添加名称属性:

<form action="lulzy.php" method="post">
        <h6><img src="img/person.png" alt="" /> Name</h6>

    <input name="name" type="text" placeholder="Please enter your full name here" required />
        <h6><img src="img/email.png" alt="" /> E-mail</h6>

    <input name="email" type="email" placeholder="Please enter your e-mail address" required/>
        <h6><img src="img/message.png" alt="" /> Message</h6>

    <textarea name="message" placeholder="Type your message..." required/></textarea>
    <input type="submit" value="Submit">
</form>
于 2013-05-26T13:39:38.097 回答
1

我认为这里的答案都不包含此错误消息的实际解决方案:

Firefox 在 /C:/Users/MS/Desktop/Slide Down Contact Me Form/lulzy.php 找不到文件

这意味着

  • 您已从本地硬盘驱动器打开 HTML(而不是从本地 Web 服务器提供它)
  • 并且您因此没有任何 PHP 处理器(尽管lulzy.php在指定的文件夹中似乎确实不存在)

此外,您忘记向name表单字段添加属性(正如其他人在这里已经提到的那样)并且您意外地将方法属性声明为表单的操作:

<form action="lulzy.php" action="post">

<!-- This should be right: -->
<form action="lulzy.php" method="post">


使用验证码? (请参阅OP 的评论
如果您保持表单发送直接电子邮件,我肯定会添加一个。那里有几个图书馆 - 根据您的流量(私人或商业网站?) - 您可以使用reCAPTCHA。你也可以自己动手,但最好使用智能问题或只有人类才能解决的问题,而不是图像。

不过,您还应该考虑到您的用户。可能的垃圾邮件打击与用户体验

除了验证人之外,另一个完全不同的选择是不将电子邮件发送到您的(个人)电子邮件地址,而是将它们保存到您的数据库中,并自行创建一个简单的通知系统。这样,您就有了更精细的过滤器控制。

于 2013-05-26T13:50:13.120 回答