我的PHP代码不起作用

时间:2013-05-26 13:37:17

标签: php jquery html css

我需要一些帮助。我试图让我的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 /向下滑动联系我表格/ lulzy.php

4 个答案:

答案 0 :(得分:6)

您需要在每个表单输入的

上都有name属性
<input type="text" name ="fullName" placeholder="Please enter your full name here" required />

emailtextarea以及method='post'代替action='post'

相同

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

答案 1 :(得分: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>

答案 2 :(得分:2)

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

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

您还可以将您的姓名属性视为其他答案状态

答案 3 :(得分:1)

我认为这里没有任何答案包含此错误消息的实际解决方案:

  

Firefox无法在/ C找到该文件:/ Users / MS / Desktop /向下滑动联系我表格/ 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's comment
如果您保持表单发送直接电子邮件,我肯定会添加一个。有几个库 - 根据您的流量(私人或商业网站?) - 您可以使用reCAPTCHA。您也可以自己动手,但最好使用智能问题或只有人类可以解决的问题而不是图像。

尽管如此,您还应该考虑用户。 可能的垃圾邮件与用户体验相比

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