2016-04-12 174 views
-1
<?php 
include ('config.php'); 

echo '<script>confirm("Are you sure?");</script>'; 

if(isset($_GET['fileid'])) 
{ 
    $fileid = $_GET['fileid']; 
    $target_dir = "img/"; 
    $target_file = $target_dir .$_GET['fileid']; 
    $query = "DELETE FROM file_info WHERE fileid='$fileid'"; 
    $result = mysqli_query($conn,$query); 
    $row = mysqli_fetch_array($result); 
    $path = "img/".$row['filename']; 

    if($result) 
    { 
     unlink($path); 
     echo'<script>window.location ="table.php";</script>'; 
    } 
    else 
    { 
     echo'<script>window.location ="table.php";</script>'; 
    } 
} 
?> 

我不知道爲什麼它不工作。從php文件夾中刪除圖像

此代碼正在更新數據庫,但不刪除文件夾中的文件需要刪除它。

+2

刪除查詢不獲取從數據庫中的數據!相反,你需要使用選擇查詢! – Saty

+0

在刪除期間您將不會獲得記錄。您需要先獲取並刪除記錄。所以首先使用'SELECT'語句,然後去'DELETE'語句。 – Yash

+0

您還應該小心將$ _GET參數直接傳遞給SQL查詢。人們可以很容易地將'1 OR 1 = 1'作爲'fileid'來傳遞,這會從'file_info'表中刪除所有記錄。如果'fileid'字段是數據庫中的整數,則使用準備好的語句或類型'fileid'來int – derhansen

回答

0

選擇查詢使用fileid獲取文件名。然後執行刪除語句。

<?php 
$path = "img/".$row['filename']; 
if(file_exists ($path)) 
    unlink($path); 
else 
echo "file not found"; 

?> 
0

打印的$結果&交叉檢查你是否能夠達到內如果()塊。同樣從你得到的值$row['filename']獲得它首先使用select查詢選擇值。

0

更改刪除查詢,選擇並給予絕對路徑,並獲取關聯數組爲$row['filename']

CODE

$fileid = $_GET['fileid']; 
$target_dir = "img/"; 
$target_file = $target_dir .$_GET['fileid']; 
$query = "SELECT filename FROM file_info WHERE fileid='$fileid'"; 
$result = mysqli_query($conn,$query); 
$row = mysqli_fetch_assoc($result); // And fetch assoc array 

$path = "c:\project\img\".$row['filename']; 
相關問題