2012-12-24 19 views
-1

我得到了我的第一個學習任務來創建腳本。任務如下:創建一個上傳文件的webform,文件上傳後它們顯示在html表格的同一頁面上。這是我的首要任務,我的首要任務就是讓它工作。所以我創建了一個表單和函數來掃描上傳文件夾中的文件,然後將它們放入數組中。之後數組用於建立html表格的cucle。請幫助我構建正確的刪除按鈕,因爲我無法使其正常工作。我的代碼是在這裏:

<?php 
if ($_GET['action']=='delete' && isset($_GET['file'])) { 
     unlink($dir.$filelist[$i]); 
     echo "File ".$filelist[$i]. " has been removed"; 
} 


//table with files 
echo"<table border=1 cellpading=5 cellspasing=0> 
<tr><th>#</th><th>Filename</th><th>Path</th><th>File extenstion</th><TH>File Size<th>Remove file?</th></tr>"; 
for ($i=0; $i <count($fileslist) ; $i++) { 
     echo "<tr>"; 
     echo"<td>$i</td><td>". $fileslist[$i]."</td>"; 
     echo "<td><a href=".$dir.$fileslist[$i].">".$fileslist[$i]."</a></td>"; 
     echo "<td>".$ext=pathinfo(($dir.$fileslist[$i]), PATHINFO_EXTENSION)."</td>"; 
     echo "<td>".$size= filesize_get($dir.$fileslist[$i])."</td>"; 
     echo "<td> <a href=\"upload.php?action=delete&file=".$filelist[$i].">Delete </a></td>"; 
     echo "<tr>"; 
} 
echo"</tabe>"; 

獲取以下錯誤:

公告:未定義的索引:在d行動:\ PHP(1)\ XAMPP \ htdocs中\ upload.php的上線32

注意:未定義變量:文件列表中d:\ PHP(1)\ XAMPP \ htdocs中\ upload.php的在線47上

+0

看着你的第一行,在刪除的上下文中,你正在使用$ i,這在此時沒有被定義,並且由於這個原因它不會按預期工作 –

回答

1

替換

echo "<td> <a href=\"upload.php?action=delete&file=".$filelist[$i].">Delete </a></td>"; 

通過

echo "<td> <a href=\"upload.php?action=delete&file=".$fileslist[$i].">Delete </a></td>"; 

你只是缺少S IN fileslist

1

我想你應該採取的錯誤消息字面意思。您的變量$filelist未在您提供的代碼示例中定義。

此外,您的第一個錯誤是因爲您嘗試檢查$_GET['action'] == 'deleted',即使在該參數未通過GET傳遞的情況下也會拋出。你總是應該使用比較像這樣之前檢查參數是否存在:

if (isset($_GET['action']) && $_GET['action']=='delete' && isset($_GET['file'])) { 
0

1-您刪除$ i個項目時$我還沒有確定

2-正如在上述答案中所述

爲了防止變量和函數名稱中的錯誤,您可以使用支持代碼完成的文本編輯器。例如,一個可以幫助的非常輕的工具是Geany。即使在Linux和Windows上的大型項目中,我仍然使用這個。它不會使用大量的RAM和CPU,並且不需要時間打開。

在AND(& &)條件塊,條件是由左到右,塊將盡快東西是不正確的讀操作時中斷,讓你更有可能想要先測試關鍵的東西,所以它不會得到進一步在該區塊陷入困境。