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>.';
}

?>
En welke foutmeldingen krijg je?

Ps. In bovenstaande code ontbreekt de functie unlink() in zijn geheel, dat kan dus nooit gaan werken.
Nee dat klopt.. ik had deze eruit gehaald omdat het echt niet werkte... Ik heb nu dit, maar dat moet eigenlijk zo worden dat het gaat werken aan de hand van een knop verwijder achter het bestand...

<?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>.';
}

$file[] = "fotos/'$foto'";

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

unlink($file[$i]);
}
?>
een knop verwijder achter het bestand...

Dat klinkt als een formulier of hyperlink, dus $_POST of $_GET-variabelen. Die zie ik hier nergens terug! Ga dus eerst eens een formulier of url maken die de juiste data bevat en ga dan controleren of de variabelen bestaan, de juiste inhoud hebben en dan kun je ze gaan verwerken.
bedankt voor de tip! ik ga ermee aan de slag.

jorg
Ik heb een tabel toegevoegd met daarin de juiste gegevens.. de bestanden staan erin en tevens staat de verwijder knop erachter. Ik heb de knop verwijder gelinkt aan een extern bestand verwijder.php. Heb je nog adviezen hoe ik nu verder moet gaan? Moet ik gebruik maken van unlink()? Ik heb nog niks in verwijder.php staan omdat ik niet weet hoe of waar te beginnen...

<?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 "<table border=0 cellpadding=0 cellspacing=0>";
echo ' <tr><td width=200><a href="fotos/'.$foto.'">'.$foto.'</a></td><td width=10 ></td><td width=180 align=right><a href="verwijder.php">[verwijder] </td></tr>';
echo '</table>';
}
}
closedir($map);
}else{
echo 'Fout opgetreden bij het openen van de map: <b>'.$map.'</b>.';
}
?>

Alvast bedankt!
mod-edit:

Bumpen
Twee of meer keer achter elkaar in een topic posten, voordat andere forumleden gereageerd hebben, heet "bumpen". Omdat het opdringerig overkomt is bumpen pas na 24 uur toegestaan. Bumpen kan een reden zijn voor de admins en mods om een topic te sluiten. Gebruik het knopje om je tekst aan te passen indien nodig.
ok thanks! ik ga proberen om dat voor elkaar te krijgen. Moet lukken.
als ik dat voor elkaar heb kom ik weer bij je terug :-)

jorg
Ik heb het bijna voor elkaar. Ik krijg alleen achter de link %22. Ik heb geen idee hoe ik dat weg krijg. Ik heb wel een scriptje voor in de verwijder.php waarvan ik denk dat het werkt. Er wordt nu namelijk aangegeven dat het bestand niet bestaat, maar ik denk dat dit komt door de %22 aan het einde van de link of?

Jorg
Een spatie is verboden, gebruik urlencode() om een correcte url aan te maken.
Ok dat is ook weer opgelost. We komen al in de buurt :-)
Ik heb nu dit in mijn ene file staan:
<?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 "<table border=0 cellpadding=0 cellspacing=0>";
echo '<tr><td width=200><a href="fotos/'.$foto.'">'.$foto.'</a></td><td width=10 ></td></tr>';
echo "<td><a href=verwijder.php?file=", urlencode($foto),">[Verwijder]</a>";
echo '</table>';
}
}
closedir($map);
}else{
echo 'Fout opgetreden bij het openen van de map: <b>'.$map.'</b>.';
}
?>

En in verwijder.php :

<?
$filename = $_GET['file'];
if(file_exists("$filename"))
{
if(unlink("$filename"))
{
echo "Bestand is verwijderd";
}
else
{
echo "Bestand is niet verwijderd.";
}
}
else
{
echo "Bestand bestaat niet.";
}
?>

Ik krijg te zien dat het bestand niet bestaat....Wat klopt hier niet aan?

Waarschijnlijk zijn dit hele simpele scripts voor je, maar zoals je vast begrepen hebt ben ik pas een paar maandjes bezig met php..

Jorg

Reageren