2015-08-20 107 views
1

我想將一些數據作爲GET請求發送到我的php頁面(submit.php)並將其保存在本地文件中。我有:file_put_contents停止執行我的代碼

$loc = 'data.txt'; 
if(isset($_GET["data"])) { 
    echo 'set'; 
    file_put_contents($loc, $_GET["data"], FILE_APPEND); 
} 
echo 'foo'; 

但是,當我訪問submit.php?data=bar,沒有任何反應data.txt;此外,echo 'foo'似乎並未執行。爲什麼是這樣?

+0

您是否看到任何錯誤消息,並且是否啓用了error_reporting和display_errors? – Rangad

+0

你確定這是你的確切代碼嗎?看起來你在'$ _GET [「data」]後面有一個額外的右括號,我希望阻止它執行。我想嘗試的一件事是添加: 'error_reporting(E_ALL); ini_set('display_errors',TRUE); ini_set('display_startup_errors',TRUE);'在頂部。 – ryachza

+0

@Rangad我沒有看到任何錯誤信息,這本身就很奇怪。我不確定是否有這些功能;我該如何檢查? – Bluefire

回答

2

echo 'foo'不執行,因爲file_put_contents()遇到錯誤並且執行停止。

error_reporting(E_ALL & ~E_NOTICES); ini_set('display_errors', '1');放在您的腳本前讓PHP顯示屏幕上的錯誤。

通過這種方式,您可以發現運行PHP代碼(可能是Web服務器)的進程沒有權限在存儲代碼的目錄中編寫代碼。

更改$loc'/tmp/data.txt'它會工作。 或者,甚至更好,創建一個新目錄,將其權限設置爲rwx,並更改代碼以在其中寫入文件。

+0

嗯。讓我試試看... – Bluefire

+0

你明白了,謝謝!事實證明,我在錯誤的目錄中工作,正如你所說,它不能寫在那裏。 – Bluefire