come cancellare i file da una cartella

bellokkiverdi87

Nuovo Utente
16 Mag 2008
20
0
0
Salve a tutti sono nuovo di questo form, piacere sono bruno

Ho creato uno script che dovrebbe cancellare dei file dal database e dalla cartella però dal database li cancella "ma tutti no solo quelo ke scelgo io" e i file presenti nella cartella non li cancella...
Allego lo script ke ho creato se qualcuno può darmi una mano gli sarei molto grato


FORM X LA SCELTA DEL FILE:
<form action='sito_canc.php' method='post' enctype='multipart/form-data'>
seleziona il file da cancellare:
<input type='file' name='killer'/><br/>
<input type='submit' value='cancella'/></form>


SCRIPT RICHIAMATO DAL FORM:
<?php

//Connesione a MySQL
$mysqli= new mysqli("localhost", "root","","test");
$var=5;
//query di cancellazione
$result = $mysqli->query("DELETE FROM `siti_pagine_files`WHERE `siti_pagine_files`.`file_id`");

mi potreste aiutare nel trovare l'errore???
vi ringrazio anticipatamente :confused::confused::skull::skull:
 
no devi usare la query per cancellare il db
ed unlike per i file

probabilmente nel db hai il nome del file che vuoi cancellare, prelevalo prima di cancellare il record e inseriscilo in un like, io ho fatto così (forse ci sono sistemi migliori, ma funziona)


PHP:
$del="DELETE FROM images WHERE Nome='".$daElim[$j]."'";
			$queryDel=mysql_query($del);
			$fileG="files/".$daElim[$j];
			$fileT="files/tb_".$daElim[$j];
			@unlink($fileG);
			@unlink($fileT);
 
ma il file al momento dell'upload viene rinominato con l' id del record, la cancellazione dovrebbe essere fatta effetuando una scelta tramite delle ceckbox
 
se ci capisci (non è molto commentato)


PHP:
<?php
@include_once 'connessione.php';
$elimina=$_POST['Submit'];
$quanti=$_POST['numFile'];


//$daElim=array();
$quanti=$quanti-1;
if($elimina=="elimina"){
	$daElim=array();
	echo "<br> ho contato ".$quanti." file";
	for($j=1;$j<=$quanti;$j++){
		$selE="S".$j;
		$daElim[$j]=$_POST[$selE];//trovo i nomi da eliminare
		echo "<br> elimino ".$j." SI= ".$daElim[$j];
		if($daElim[$j] != ""){
			$del="DELETE FROM images WHERE Nome='".$daElim[$j]."'";
			$queryDel=mysql_query($del);
			$fileG="files/".$daElim[$j];
			$fileT="files/tb_".$daElim[$j];
			@unlink($fileG);
			@unlink($fileT);
		}
	}
	mysql_close();
	echo "<meta http-equiv='Refresh' content='1; URL=../scelta.php'>";
}

@include_once 'connessione.php';

$cerca="SELECT * FROM images ORDER by id";
$conta=1;
$id= array();
$titolo= array();
$nome= array();
$query=mysql_query($cerca);
?>
<div align="center">ATTENZIONE: le foto eliminate non possono essere recuperate,devono essere ricaricate<br>
  selezionare le foto da eliminare<br>
<?php
echo "<form name=\"form1\" method=\"post\" action=\"elimina.php\">";
echo "<table width=\"450px\"  border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr><td><strong>seleziona</strong></td><td><strong>titolo</strong></td><td><strong>file</strong></td></tr>";
while($riga=mysql_fetch_array($query)){
	$id[$conta]=$riga[Id];//identificativo foto
	$titolo[$conta]=$riga[Titolo];//titolo della foto
	$nome[$conta]=$riga[Nome];//nome fot es pinco.jpg
	$select="S".$conta;
	echo "<tr>";
	echo "<td><label><input type=\"checkbox\" name=\"".$select."\" value=\"".$nome[$conta]."\"></td><td>".$titolo[$conta]."</label></td><td>".$nome[$conta]." | ".$id[$conta]." | ".$select."</td>";
	echo "</tr>";
	$conta ++;
}//fine while
echo "<input name=\"numFile\" type=\"hidden\" value=\"".$conta."\">";
echo "<tr>";
echo "<td>elimina</td><td><input type=\"submit\" name=\"Submit\" value=\"elimina\"></td><td><input type=\"reset\" name=\"resetta\" value=\"reset\"></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
 
 
 
?>
 
[PHP]


:beer:
 
sto provando a modificare il sorgente ke mi hai inviato, speriamo bene... cmq scusa se ti do fastidio ma è da poco ke sto utilizzando il php
 
ho provato il tuo sorgente modificato con i miei dati e mi da questo output
 

Allegati

  • output.JPG
    output.JPG
    45,3 KB · Visite: 244
ed ora ti metto il sorgente cosa ho sbagliato???


<?php
@include_once 'connessione.php';
$elimina=$_POST['Submit'];
$quanti=$_POST['file_id'];


//$daElim=array();
$quanti=$quanti-1;
if($elimina=="elimina"){
$daElim=array();
echo "<br> ho contato ".$quanti." file";
for($j=1;$j<=$quanti;$j++){
$selE="S".$j;
$daElim[$j]=$_POST[$selE];//trovo i nomi da eliminare
echo "<br> elimino ".$j." SI= ".$daElim[$j];
if($daElim[$j] != ""){
$del="DELETE FROM siti_pagine_files WHERE id='".$daElim[$j]."'";
$queryDel=mysqli_query($del);
$fileG="files/".$daElim[$j];
$fileT="files/tb_".$daElim[$j];
@unlink($fileG);
@unlink($fileT);
}
}


}

@include_once 'connessione.php';

$cerca="SELECT * FROM siti_pagine_files ORDER by id";
$conta=1;
$id= array();
$titolo= array();
$nome= array();
$query=mysqli_query($cerca);
?>
<div align="center">ATTENZIONE: i file eliminati non possono essere recuperati,devono essere ricaricate<br>
selezionare i file da eliminare<br>
<?php
echo "<form name=\"form1\" method=\"post\" action=\"canc1.php\">";
echo "<table width=\"450px\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">";
echo "<tr><td><strong>seleziona</strong></td><td><strong>titolo</strong></td><td><strong>file</strong></td></tr>";
while($riga=mysqli_fetch_array($query)){
$id[$conta]=$riga[Id];//identificativo file
// $titolo[$conta]=$riga[Titolo];//titolo della foto
// $nome[$conta]=$riga[Nome];//nome fot es pinco.jpg
$select="S".$conta;
echo "<tr>";
echo "<td><label><input type=\"checkbox\" name=\"".$select."\" value=\"".$nome[$conta]."\"></td><td>".$titolo[$conta]."</label></td><td>".$nome[$conta]." | ".$id[$conta]." | ".$select."</td>";
echo "</tr>";
$conta ++;
}//fine while
echo "<input name=\"numFile\" type=\"hidden\" value=\"".$conta."\">";
echo "<tr>";
echo "<td>elimina</td><td><input type=\"submit\" name=\"Submit\" value=\"elimina\"></td><td><input type=\"reset\" name=\"resetta\" value=\"reset\"></td>";
echo "</tr>";
echo "</table>";
echo "</form>";
 
verifica nella tabella cosa hai, nella mia c'è il nome solo esatto del file
es. pincopallo.jpg

che corrisponde esattamente al nome del file
 
nella tabella dopo l'upload mi viene inserito

1)l'id autoincrement (uguale al nome del file caricato nella cartella)
2)idsito che lo inserisco io di defoult
3)idpagina anke esso inserito di defoult
4)ext estensione del file
5)desc la descrizione del file inserita dall'utente nel form al momento dell'upload
 

Discussioni simili