2014-06-17 4 views
0

Dans mon script j'ai un tableau qui filelocations sur mon serveur. Je voudrais envoyer plusieurs en-tête/obtenir à une autre page où il va supprimer ces fichiers.Comment envoyer plusieurs Get demande

ma page de suppression utilise $_GET pour sélectionner le fichier à supprimer.

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

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

Supprimer fichier

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

Comment pourrais-je envoyer des en-têtes multiples sans poste, mais au lieu d'utiliser obtenir? au lieu de forcer l'utilisateur à cliquer sur tous les liens pour supprimer les éléments?

+0

Jetez un oeil à CURL. Oh et plus important: 1) La méthode 'DELETE' est appropriée pour utiliser (si possible) lors de la suppression de choses. 2) Vous devriez vérifier très soigneusement que les personnes demandant la suppression ont le droit de supprimer ce fichier, sinon vous pourriez vous exposer à de gros problèmes. –

Répondre

3

Vous pouvez passer plusieurs ids avec l'URL suivante:

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

Generate avec:

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

Poignée avec:

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

Cependant, cette solution simple est vulnérable à sql injection.

Vous devriez mieux travailler sur les ID des fichiers et lors de la construction SQL, analyser tous ids passé avec

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

Et vous pouvez également utiliser une case à cocher '' puis un bouton d'envoi. Ainsi, l'utilisateur peut choisir les fichiers à supprimer en cliquant sur. – Karl

+0

En fait Im utilisant params cependant je l'ai fait pour simplifier beaucoup. Je l'ai déjà fait avec des tableaux, j'étais curieux de savoir s'il était possible d'envoyer plusieurs pages. – Nicco