Ik heb een lijst waarin bestanden te zien zijn die in een map zitten. Nu wil ik achter elk bestand het woord verwijder plaatsen met uiteraard de actie verwijder. Ik heb het geprobeerd met unlink(), maar ik krijg het niet aan de praat.

Kan iemand mij helpen?
Ik heb nu dit:

<?php
$fotoExt = array('gif','jpg','png','bmp');
if ($map = opendir("fotos")) {
while (($foto = readdir($map)) !== false) {
if($foto != '.' && $foto != '..' && in_array(substr($foto,-3),$fotoExt)){
echo '<a href="fotos/'.$foto.'">'.$foto.'</a></br>';
}
}
closedir($map);
}else{
echo 'Fout opgetreden bij het openen van de map: <b>'.$map.'</b>.';
}

?>
@Jorg

Je gebruikt nu geen urldecode in verwijder.php..

<?
if($_SERVER['REQUEST_METHOD'] == 'GET' && !empty($_GET['file']){

$filename = urldecode($_GET['file']);
if(file_exists("$filename"))
{
if(unlink("$filename"))
{
echo "Bestand is verwijderd";
}
else
{
echo "Bestand is niet verwijderd.";
}
}
else
{
echo "Bestand bestaat niet.";
}
}
else{
echo 'Er is geen bestand opgegeven';
}
?>
Ik krijg nu nog een foutmelding op de verwijder.php:
Parse error: syntax error, unexpected '{' in /var/www/vhosts/spruitenco.nl/httpdocs/fotos/verwijder.php on line 2

Dat ga ik nog even fixen en dan zou het moeten werken..

Bedankt voor alle adviezen en hulp!

Jorg
je vergeet een ) aan het eind van regel 2 van het script van Robert.
Je kan de quotes om een $var weghalen.
"$filename" wordt gewoon $filename

Verder zal je in de verwijder-link ook het path moeten meegeven.
<?php
echo '<tr><td width=200><a href="fotos/'.$foto.'">'.$foto.'</a></td><td width=10 ></td></tr>';
echo "<td><a href=verwijder.php?file=fotos/", urlencode($foto),">[Verwijder]</a>";
?>
Het werkt nu perfect!
hartstikke bedankt allemaal.

Jorg

Reageren