2015-11-02 73 views
0

我無法獲得這個簡單的PHP腳本來獲取HTML表單中的數據。該腳本拋出這樣的警告:無法讓PHP腳本將用戶輸入寫入文本文件

(注意:使用未定義的常量「電子郵件」的 - 在 /absolute/fullpath/godaddy/frustration/html/mail.php假設「」電子郵件「」第5行)

更詳細的解釋:我寫我的好友的網站這個簡單PHP腳本。它應該收集電子郵件地址並將其寫入文本文件。我決定走這條路線,而不是使用任何類型的數據庫。我在網絡服務器的根目錄下都有email.txt文件和PHP腳本。我們使用GoDaddy來承載網站。我確定GoDaddy已啓用PHP,並且沒有限制性設置。

我將腳本和文本文件的權限更改爲666。我已經得出結論,該腳本不會獲取從HTML表單發佈的數據。我得出這個結論是因爲我測試了fwrite函數,它很容易寫入文本文件(email.txt)而不會出現呃逆。

我在過去的兩週裏只花了幾個小時試圖完成這個任務,但我覺得我已經用盡了所有的選擇。我通過谷歌搜索了很多,並注意到有類似問題的其他人。但是,他們通過爲文本文件添加完整路徑,更改權限等方式解決了他們的問題。

每當我向文本框中輸入電子郵件地址並點擊提交,email.txt文件中都沒有寫入任何內容,只是一個空文本文件。

非常感謝您的任何反饋或幫助。非常感謝!

<form id="emaillist" name="email" method="post" action="mail.php"> 
<label for="mailList"></label> 
<input type="text" name="email" id="email" placeholder="Email Address" /> 
<input type="submit" name="submitMail" id="submitMail" value="Submit" /> 
</form> 

<?php 
ini_set('display_errors', 1); // show errors 
error_reporting(-1); // of all levels 
date_default_timezone_set('UTC'); // PHP will complain about on this error level 
$emailaddr = $_POST[’email’]; 
$fp = fopen('/full/path/totextfile/html/email.txt', 'a'); 
fwrite($fp, $emailaddr); 
fclose($fp); 
echo 'Thank you!'; 
phpinfo(); 
?> 
+0

你好!如果瞳孔的答案在下面解決了你的問題,請勾選旁邊的勾號以顯示它是有效的!歡呼聲 – Martin

回答

3

正確:

$emailaddr = $_POST[’email’]; // back ticks are used to enclose, incorrect. 

要:

$emailaddr = $_POST['email']; // single quotes are used to enclose, correct. 
+0

非常感謝!我很感激!我不知道back ticks是如何到達那裏的。再次感謝! – user202441

+0

@ user202441,歡迎光臨! – Pupil