Hello,
mit folgendem Code möchte ich Daten vom Server listen und gegebenfalls löschen.
Das Problem derzeit ist, das die Dateien beim Start der Seite vom Server gelöscht werden. Sie werden zwar gelistet sind aber nicht mehr vorhanden.
Woran kann es liegen?
[...]
{
$file ='';
}
if ($file<>'')
{
[...]
$datei = $file;
if(!empty($datei))
{
if(file_exists('doku/pdf/' . $datei))
{
@unlink('doku/pdf/' . $datei);
echo "Datei erfolgreich gelöscht!<br />\n";
}
[...]
Das Problem scheint mir zu sein, dass Du Dir erst einmal übner den Mechanismus "Client - Server" Gedanken machen musst. Du hast in Deinem Script eine zeitliche Abfolge abgebildet, die nicht in einem Schritt durchgeführt werden soll, sondern eine zusätzliche Bedienerhandlung stattfinden lassen sollte. Dazu musst Du dann aber auch das Wechselspiel "Client <-> Server" stattfinden lassen.
Außerdem hat Dein Lösungsansatz noch mehrere andere Fehler:
-
Benutzungsmöglichkeit durch Böse Buben
-
TOCTOU-Problem (file_exists()) http://en.wikipedia.org/wiki/Time-of-check-to-time-of-use
besser: einfach löschen und dann den Fehlerstatus der Löschfunktion auswerten -
usw.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg