2013-05-26 103 views
1

我需要一點點幫助。我試圖讓我的PHP代碼(保存爲一個名爲lulzy.php的單獨文件)工作,但它不想。我做錯了什麼?我的PHP代碼是不能工作

我的目標是直接將用戶消息放入我的電子郵件收件箱,並在用戶填寫我的Web表單時立即獲得。

這裏是鏈接到我的jsfiddle:http://jsfiddle.net/8S82T/127/

這是我的PHP代碼:

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

    mail("[email protected]", "Feedback Form Results", 
    $message, "From: $email"); 
    header('Location: Index.html'); 
?> 

一切都在我的桌面上的同一個文件夾。

這是我收到的消息時,我嘗試以填充整個表格併發送一條消息:

的Firefox不能在/ C查找文件:/用戶/ MS /桌面/向下滑動與我聯繫表/lulzy.php

+1

對於127次嘗試加上酷腳本+1。 –

+0

你的表單很容易被郵件頭注入。在將其放入標題之前,始終將'$ email'列入白名單。 –

+0

嘗試將此位更改爲:'action =「lulzy.php」'爲'action =「./ lulzy.php」'或其他變體。 –

回答

1

我認爲這裏沒有包含這個錯誤信息的實際解決方案:

Firefox在/ C:/ Users/MS/Desktop/Slide Down找不到文件聯繫我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's comment
我肯定會添加一個,如果你把你的形式直接發送電子郵件。有幾個圖書館 - 根據您的流量(私人或商業網站?) - 您可能會使用 reCAPTCHA。你也可以推出自己的,但更好地使用智能問題或只有人類可以解決而不是形象的東西。

不過,你也應該考慮你的用戶。 可能的垃圾郵件毆打與用戶體驗

除了驗證人類之外,一個完全不同的選擇是不將電子郵件發送到您的(個人)電子郵件地址,而是將它們保存到您的數據庫中,並自行創建一個簡單的通知系統。這樣,你就可以有更細化的過濾器控制。

+0

好的。我會嘗試按照建議更改所有內容,但是如何在將所有內容上傳到Web服務器之前測試我的PHP代碼是否正常工作?一切仍然在我的本地硬盤上。有什麼辦法嗎? –

+0

@ C.Felipe只需安裝本地Web服務器即可。我會推薦與Apache(Web服務器),PHP,Perl,phpMyAdmin和一些其他工具一起打包的[XAMPP](http://www.apachefriends.org/en/xampp.html)。 – ComFreek

+0

謝謝!我會盡力做到這一點。希望它很容易使用,所以我可以測試我的代碼! –

6

你需要有name屬性上的每個表單輸入的

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

同爲emailtextarea,和method='post'代替action='post'

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

+1

爲什麼會出現「Firefox無法在...處找到文件」錯誤? – JJJ

+5

這很有用,但不是答案。 –

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

你需要method="POST"代替action="post"

你宣佈的行動兩次,並在所有的不聲明你method怎樣的形式張貼到你的PHP腳本

你也爲你的姓名屬性像其他答案狀態