我得到這個免費提供的PHP腳本來跟蹤下載統計。簡單來說,它只是計算下載並將其傳遞到日誌文件,而另一個腳本使用該日誌文件顯示前10個列表。所以這正是我需要的,所以我真的很想讓這個腳本工作。但事實並非如此。當然。我在PHP方面的知識有限(但是遇到這個腳本後學到了很多東西!)。據作者說,它已經在類似於我的Apache和php版本上進行了測試,沒有任何問題。所以我一直在猶豫是否真的要改變任何代碼。我試圖chmod日誌文件和/或整個子目錄666和777沒有成功。 我自己的可憐的偵探工作無處可去,我真的嘗試過。所以我訴諸於我通常從未做過的一件事,尋求幫助。PHP平面文件下載計數器
這個連接應該具有以下形式:下面
<a href=http://www.yoursite.com/downloader/download.php?number=1&file=filename.zip>
的download.php如下:
$number = $_GET['number'];
$file = $_GET['file'];
$logfile = "ROOT DIRECTORY PATH/logfile.txt";
$array[dir_1] = "URL PATH/DOWNLOADFILESFOLDER";
$download = "dir"."_"."$number";
if ($array[$download]) {
$fp = fopen($logfile,'r');
while (!feof($fp))
{
$data[] = chop(fgets($fp,4096));
}
fclose($fp);
$fp = fopen($logfile,"w");
if (flock($fp,LOCK_EX)) {
// list and split each filename and number of downloads
foreach ($data as $lines){
list($downloads,$filename,$realname) = split("\|",$lines);
// check if file already exists and add one more download if it does
if ($filename == $file){
$downloads++;
}
if ($filename <> ""){
fputs($fp,"$downloads|$filename|$realname\r\n");
}
}
flock($fp,LOCK_UN);
}
fclose($fp);
header("Location: $array[$download]/$file");
}
但是劇本沒有任何意義,我的一個組成部分;它在哪裏獲得文件名和真實名稱,以便它可以放入日誌文件中,前提是文件從未被下載過? list()函數和目錄數組讓我的腦海裏浮現了一些想法。雖然這似乎合乎邏輯。 如果有人遇到一些根本性的錯誤或有一些關於如何繼續下去的提示,這將不勝感激。
PS。我試圖跟蹤pdf文件,如果有幫助。
更新!通過善良的建議,我跑錯誤報告,並得到一個錯誤。錯誤的腳本中有一個錯誤,我刪除了它。我再次運行錯誤檢查,只有關於未定義變量的「Notices」。我將錯誤報告更改爲
error_reporting(E_ALL^E_NOTICE);
之後,根本沒有錯誤。
你實際上是在實施「根目錄路徑」和「URL路徑」更改爲你的嗎? – KeatsKelleher 2010-08-30 21:45:16