ik heb een archiefje met bestanden. maar om die bestanden ook weer een keer te kunnen verwijderen indien nodig is daar een scriptje voor nodig. nu lukt het mij nog niet echt.

ik heb het volgende stukje code:

<?php
if(isset($_POST['submit']));
{

$bestand = 'Bestanden/'.$bestand_id.'.'.$ext;
unlink($bestand);

$id = ($_POST['bestand']);
$query2 = "DELETE FROM bestanden WHERE id='".$id."'";
(mysql_query($query2));
echo('Het bestand is verwijderd');

}
?>

uit de database wordt hij wel verwijderd, maar niet uit de map "Bestanden"

ik heb de functie unlink nog nooit gebruikt hiervoor, en heb ik hier uit de tutorials, dus weet ook nog niet zo goed hoe ik hem moet gebruiken.
probeer eens:
<?
$bestand = "Bestanden/".$bestand_id.".".$ext;
?>

ipv:
<?
$bestand = 'Bestanden/'.$bestand_id.'.'.$ext;
?>
dit bovenste bericht is op een andere account gedaan dan eigenlijk mijn bedoeling was, ik logte in met die gebruikersnaam omdat ik die ook ergens anders gebruik, en toevallig was het wachtwoord ook hetzelfde

(dus gebruiker van bovenstaande account, verander je wachtwoord)
rofl? wtf
thijs schreef op 19.10.2005 01:35
probeer eens:
<?
$bestand = "Bestanden/".$bestand_id.".".$ext;
?>

ipv:
<?
$bestand = 'Bestanden/'.$bestand_id.'.'.$ext;
?>


maakt geen verschil, effect blijft hetzelfde, alleen record in database wordt verwijderd, bestand blijft staan.
Ik heb zon gvoel dat het met die map te maken heeft probeer eens een bestand in dezelfde map als je die php code hebt staan en dan

<?
$bestand = $bestand_id.".".$ext;
?>
ik heb het eerst nog geprobeerd door de map eerst te chmodden. maar ook dat hielp niet, toen jouw nieuwe regeltje geprobeerd, maar dat werkte ook niet. hoe kan dat nou?

map heeft 777 als rechten. dus dat zit wel goed.
hoe kom je aan die bestand_id en die extensie?
die worden bij het uploaden in de database opgeslagen.

het bestand id is een md5 hash, en de extensie wordt met een explode van de bestandsnaam in de database opgeslagen.

dus die worden bij dit script weer terug opgehaald uit de database

wel staat er het volgende regeltje onderaan op de pagina:

Warning: unlink(Bestanden/6512bd43d9caa6e02c990b0a82652dca.png) [function.unlink]: No such file or directory in /home/uploadar/domains/uploadarchief.com/public_html/admin/verwijder.php on line 81

regel 81 is:
unlink($bestand);
okee, de opgegeven naam is niet correct :)

Probeer eens dit:

<?
if(file_exists($bestand))
{
unlink($bestand);
}
?>

hierbij controleert deze of het bestand bestaat.

btw, staan de bestanden in de admin directory? Anders moet je voor directory ../ zetten.
die ../ ervoor zetten werkt ook niet. ik heb daarna het volledige adres getypt, maar ook dat werkte niet.

het is als volgt opgebouwd.

home/Bestanden/.......
home/admin/verwijder.php

ik hoop dat je een beetje snapt hoe die mappen in elkaar zitten met bovenstaand voorbeeld.

wel verdween die foutmelding toen ik het volledige adres naar het bestand had getypt. ik heb nu de volgende code:

<?php
if(isset($_POST['submit']));
{

$bestand = "http://www.uploadarchief.com/Bestanden/".$bestand_id.".".$ext;
if(file_exists($bestand))
{
unlink($bestand);
}


$id = ($_POST['bestand']);
$query2 = "DELETE FROM bestanden WHERE id='".$id."'";
(mysql_query($query2));
echo('Het bestand is verwijderd');

}
?>

ook staat die "Het bestand is verwijderd" alreeds in beeld als ik de pagina gewoon laadt, als ik dan in de database kijk heeft hij nog niks verwijderd. dat niet.

Reageren