bottone cancella(unlink) di una fotogallery

yok

Utente Attivo
3 Set 2009
62
0
0
Ciao!
Non vorrei essere troppo invadente ma fino a qui ho sviluppato una gallery php grazie anche all'aiuto di questo forum. E' ancora in fase di perfezionamento ma le basi ci sono. Per ora i files immagine e i titoli delle stesse immagini vengono richiamati nella gallery senza supporto dei DB, un pannello di controllo permette all'utente di modificare i titoli delle immagini caricate, ora vorrei dare la possibilità di cancellare le immagini attraverso un tasto sfruttando la funzione unlink. Ho fatto un bel pò di tentativi infruttuosi, non mi è chiaro come implementare questo tasto, e la funzione di cancellazione, nel seguente blocco di codice:

<form action="" method="POST" enctype="multipart/form-data" name="form1">

<?php

$nome_cartella = "thumbs/foto/"; //cartella delle thumbnails
$handle = opendir($nome_cartella);
$num_foto=count(glob('foto/*.*'));

$leggi=array();

for($i=0; $i<$num_foto; $i++) {
$var=@fopen("txt/titolo".$i.".txt","rb"); //la cartella TXT contiene
//i files di testo dei titoli
$leggi[]=@fread(@$var,filesize("txt/titolo".$i.".txt")); }
$conta=0;
while (false != ($file = @readdir($handle))) {
if ( $file == ".." || $file == ".") {
continue;
}else{
echo "<span class='box1'><img src="."'".$nome_cartella.$file."'><br><input type='text' name='titolo[]' size='32' value='".$leggi[$conta"'><br><input type='submit' name='cancella' value='cancella file'></span>";
//qui c'è il tasto che dovrei usare per cancellare le foto
$conta++;
}
}

?>
<br>
<br>
<br>
<input type="submit" value="Inserisci titoli">

</form>

<?php

$num_files=@$_POST['titolo'];

function singleUpload($i) { //funzione per riscrivere il file di testo-titoli
if(@$_POST['titolo'][$i] != "") {
$write=fopen("txt/titolo".$i.".txt", "w+");
fwrite($write, $_POST['titolo'][$i]);
fclose($write);
}
}

for($i=0;$i<count($num_files);$i++){

singleUpload($i);

}

echo "<a href='index.html'>indietro</a><br><br>";

echo "<a href='gallery_visual5.php'>Guarda gli inserimenti</a>";

?>


Capisco che sia un blocco un pò complesso ma non ho una fretta spasmodica!

Grazie come sempre
Ciao
 
Prova questa versione, ho corretto un po' di cose:
PHP:
<form action="" method="POST" enctype="multipart/form-data" name="form1">
	<?php
	$nome_cartella = "thumbs/foto/";
	$handle = opendir($nome_cartella);
	$num_foto=count(glob('foto/*.*'));

	$leggi = array();

	for($i = 0; $i < $num_foto; $i++)
	{
		$var = @fopen("txt/titolo{$i}.txt", "rb");
		$leggi[] = @fread(@$var, filesize("txt/titolo{$i}.txt"));
	}
	
	$conta = 0;
	$files = array();
	while(false !== ($file = @readdir($handle)))
	{
		if($file != '.' && $file != '..')
		{
			$files[$conta] = "thumbs/foto/{$file}";
			echo "<span class='box1'><img src='{$nome_cartella}{$file}'><br><input type='text' name='titolo[]' size='32' value='{$leggi[$conta]}'><br><input type='checkbox' name='delete[]' value='{$conta}'> Cancella</span>";
			$conta++;
		}
	}

	?>
	<br> <br> <br> <input type="submit" value="Inserisci titoli">
</form>

<?php
$num_files = @$_POST['titolo'];
$delete = $_POST['delete'];

function singleUpload($i)
{ 
	if(@$_POST['titolo'][$i] != "")
	{
		$write = fopen("txt/titolo{$i}.txt", "w+");
		fwrite($write, $_POST['titolo'][$i]);
		fclose($write);
	}
}

foreach($delete as $fid)
	unlink($files[$fid]);

for($i = 0; $i < count($num_files); $i++)
{
	singleUpload($i);
}

echo "<a href='index.html'>indietro</a><br><br>";
echo "<a href='gallery_visual5.php'>Guarda gli inserimenti</a>";
?>
 
Grandissimo!
Poi l'utilizzo dei checkbox è particolarmente indicato, così si possono fare scelte multiple!
Ora devo sistemare un pò di cose per far ricombaciare i titoli con le foto ogniqualvolta ne vado a cancellare qualcuna. Ma questo credo riuscirò a farlo da solo.
Grazie ancora Alessandro, ciao!
 

Discussioni simili