2012-08-31 87 views
0

檢查這個代碼:PHP File_put_contents不工作

<?php 

$url = 'http://www.example.com/downloads/count.txt'; 

$hit_count = @file_get_contents($url); 
$hit_count++; 
@file_put_contents($url, $hit_count); 

header('Location: wmwc.zip'); 

?> 

@file_get_contents工作正常和頭部位置改變到下載的文件也可以,但是無論是hit_count增加或@file_put_contents不工作,因爲與數該文件不會增加1.我已經將文件權限設置爲777,但是當我嘗試將目錄權限設置爲777時,我也收到500內部服務器錯誤,說「服務器遇到意外情況,阻止它履行請求。」

+2

拿走@,並告訴我們你得到了什麼錯誤。 @隱藏錯誤。 –

+2

您試圖寫入一個URL。我不認爲這應該與'http'開箱即用。也許你打算寫一些本地文件,但是你將不得不使用該文件的路徑。 – complex857

+0

刪除了@並得到這個:未能打開流:HTTP包裝不支持/hermes/bosweb/web046/b462/glo.ckrsavonte/whoolimooli/downloads/index.php在第7行 這是與目錄中的可寫連接權限755.777產生了與以前一樣的內部服務器錯誤。 – CoreyRS

回答

8

無法寫入通過http一個遠程文件(如果你能做到這一點,每個人可以改變這個文件也。)

您需要使用本地路徑。

+0

我使用的是wordpress,所以URL實際上並不指向系統的根目錄。由於它是PHP,我假設路徑必須是相對於執行此功能的PHP文件是,而不是頁面的實際URL。它是否正確? – CoreyRS

+0

@CoreyRS最好使用絕對路徑。 – xdazz

+0

好吧然後我想你誤解了我的第一篇文章。我在變量中設置的URL是絕對路徑,該文件託管在我的本地服務器上,但仍然不起作用。 – CoreyRS

0

嘗試更改目錄屬性

chown www-data:www-data <dirname> 

和/或寫如下,如果你的主機在Linux上

<?php 
$var ="hi"; 
shell_exec('echo "'.$var.'">>log.txt'); 
?>