2014-06-17 111 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