Goede dag,

ik heb hier een stuk code uit mijn website.

<?php
$target = $verwijder['image_link'];

if (file_exists($target)) {
    unlink($target);
}
sleep (2);
if (file_exists($target)) {
    echo "<td class=\"maintxt\">Fout opgetreden tijdens het verwijderen : " . $target . "</td>";
} else {

///// Database codes en andere codes wat hier niks te doen heeft.


}
?>


Alles werkt prima, alleen de foto word niet van mijn server verwijderd.
de link blijft namelijk gewoon werken. de waarde van $target = http://www.*.nl/user_content/images/6/0acbec3a8348de88abfb687db893096f.jpg
de database gegevens worden wel verwijderd.

kan iemand mij uitleggen wat ik hier fout doet? de unlink functie is namelijk best nieuw voor mij.
Zet errors aan en check of de unlink() is gelukt.
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);

if(unlink($verwijder['image_link'])
{
echo 'Gelukt';
}
else
{
echo 'Niet gelukt';
}
?>
Om een foto te verwijderen moet je dan alleen de map op 777 hebben staan of ook de foto?
ik krijg geen error meldingen op de pagina van het verwijderen.

Er staat dat de foto verwijderd is maar als ik dan kijk op de link die $verwijder['image_link']; weergeeft dan bestaat de foto gewoon nog.

http://www.*.nl/user_content/images/6/0acbec3a8348de88abfb687db893096f.jpg

Dat kan niet.
Je moet een directory hebben niet een http url.
Dus ik gok zomaar dat het moet worden:


<?php
unlink('user_content/images/6/0acbec3a8348de88abfb687db893096f.jpg');
?>

Je moet even kijken wat de hele directory structuur is.
Want dat kan ik zo niet uit je post halen.
Wat geeft

<?php
echo '<pre>';
print_r($_SERVER);
echo '</pre>';
?>
De rechten die je moet hebben hangt mede af van wie de eigenaar is van het bestand en onder welke user het PHP script draait.

Maar probeer dit eens:
<?php
if(unlink($filename))
echo 'Gelukt';
else
echo 'Niet gelukt';
?>
De owner van de foto moet dezelfde zijn als de user waaronder de webserver draait.
Zoniet, dan moeten de rechten van de foto op 666 staan.
Dit is geen rechten probleem, maar een directory probleem. :)
het is opgelost! bedankt ;)


<?php

if($verwijder['type'] == "image/jpeg"){
$type = ".jpg";
}
if(unlink($verwijder['image_naam'].$type)){

}
?>


even in het kort voor als iemand ooit de zelfde fout heeft.


bedankt.
Nogmaals bedankt ;) ben echt al tijdje bezig met een oplossing zoeken.

Reageren