2014-06-17 110 views
0

在我的腳本中我有一個數組,其中filelocations在我的服務器上。我想發送多個標題/獲取到另一個頁面,它會刪除這些文件。如何發送多個獲取請求

我的刪除頁面使用$_GET來選擇要刪除的文件。

$array1 = array('file1', 'file2', 'file3'); 

foreach($array1 as $key => $item){ 
echo '<li><a href="delete_page.php?file='.$item.'">'.$item.'</a></li>'; 
} 

刪除文件

$_delete=$_GET['file']; 
mysqli_query($connect, "DELETE FROM Doc WHERE file=$file"); 

我怎麼會發送多個頭,不交的,而是用得到? 而不是強制用戶點擊所有鏈接來刪除項目?

+0

看一看捲曲。哦,更重要的是:1)DELETE'方法適合在刪除東西時使用(如果可能)。 2)你應該仔細檢查請求刪除的人是否有權刪除這個文件,否則你可能會面臨很大的麻煩。 –

回答

3

您可以通過使用以下網址多個ID:

delete_page.php?files[]=file1&files[]=file2&files[]=file3 

與生成它:

$files = array(); 
foreach ($array1 as $item){ 
    $files[] = 'files[]=' . $item; 
} 
$items = implode('&', $files); 
echo '<li><a href="delete_page.php?' . $items . '">delete all</a></li>'; 

與處理:

$_delete = $_GET['files']; 
$files = implode(',', $_delete); 
mysqli_query($connect, "DELETE FROM Doc WHERE file IN ($files)"); 

然而這種簡單的解決方案是容易受到SQL注射。

你應該上的文件ID和SQL生成過程中更好的工作,分析所有通過IDS與

$_delete = array_map('intval', $_GET['files']); 
+0

你也可以使用複選框代替''然後提交按鈕。所以用戶可以通過點擊來選擇要刪除的文件。 – Karl

+0

其實即時使用參數,但我這樣做簡化很多。我已經完成了它與數組,我很好奇,如果有可能發送多個轉到頁面。 – Nicco