• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

Frage zu löschen eines Verzeichnisses

jminy

New member
Hallo Ihr Lieben,

Eure (speziell auch die von ele) Hilfe hat mich echt weitergebracht und es funzt inzwischen auch so gut wie alle was ich so gemacht habe.
Ihr/Du eart/warst also eine ECHTE Lernhilfe. Also, "postum" nochmals lieeeebne Dank...

Jetzt habe ich eine weitere Frage und vielleicht geht das auch garnicht was ich machen will.

Habe ein Script (mühsam aus ergoogeltem zusammen gebastelt) zum Löschen von Verzeichnissen nebst Unterverzeichnissen und deren gesamten Inhalt.

Und, oh Wunder, ich hab's sogar hingekriegt (bin stolz wie Bolle - lach)

Es ginbt nur einen kleinen "Wermuthstropfen":
Eines der Unterverzeichnisse wird beim Erstellen per .htaccess-Datei mit einem Verzeichnisschutz versehen. Dieses Unterverzeichnis kann von meinem nachstehend geposteten Script nICHT gelöscht werden.

Habt Ihr/hast Du eien Idee, wie man das machen kann? Oder geht das eventuell grundsätzlich NICHT per PHP?

Habe breim googeln leider garnix zu diesem Thema gefunden...

Liebe Grüße, Sarah


Hier mein Script zum löschen von Verzeichnissen:
Code:
function delete_folder($dir) 
  {
  $to_del = opendir($dir);
  while($entry = readdir($to_del)) {
    if($entry == ".." || $entry == ".")
      continue;
    if(is_dir($dir . $entry))
      deltree($dir . $entry . "/");
    else
      unlink($dir . $entry);
  }
  closedir($to_del);
  rmdir($dir);
}
delete_folder('./'.$folder.'/');
 
wird generell ein rechte-problem sein dass der user unter dem das php script läuft keine schreibrechte auf dem file hat
 
Sorry, alles zurück auf Anfang.

Hatte einen Fehler in eienm nicht geposteten Teil eines Scripts gemacht, der jetzt behoben ist.

Außerdem enthielt das oben gepostete Script eine Fehler.
Hier jetzt die korrigierte Version:

Code:
<?
function delete_folder($dir) 
  {
  $to_del = opendir($dir);
  while($entry = readdir($to_del)) {
    if($entry == ".." || $entry == ".")
      continue;
    if(is_dir($dir . $entry))
      delete_folder($dir . $entry . "/");
    else
      unlink($dir . $entry);
  }
  closedir($to_del);
  rmdir($dir);
}
delete_folder('./'.$folder.'/') 
?>

Es spielt keine Rolle mehr, ob ein Verzeichnis eine .htaccess Datei enthält oder nicht.

Das Problem ist ein anderes:

Lokal, unter XAMP, funktioniert das Script problemlos.
Sobald ich es auf den externen Server lege (in diesem Fall STRATO - Premiumpaket, mit PHP4 und 5), löscht das Script zunächst alle Dateien in allen Verzeichnissen und wenn ich es dann nochmal durchlaufen lasse, löscht es die lerren Verzeichnisse.

Verstehe das wer will oder kann. Jemand von Euch eine Idee?

Ach ja, die Rechte sind auf 0777 gesetzt und das Script funktioniert auch nicht mit der Dateierweiterung *.php5

Liebe Grüße, Sarah
 
Hm, ehrlich gesagt keine Ahnung. Das Skript sieht auf den ersten Blick in Ordnung aus und du sagst ja auch, dass es lokal bei dir funktioniert. Was genau auf deinem Server schief läuft kann ich nicht erraten. Gibt den PHP keine Warnungen aus? Möglicherweise musst du diese noch über error_reporting(E_ALL); einschalten.
 
Hallo ele,

wieder einmal hast Du das richtige Stichwort geliefert.
Ich habe mir jetzt nämlich mal die error-Meldungen des Servers angesehen und dabei einen Fehler entdeckt, den ich, oh Freude, auch durch eigenes Nachdenken über Problemlösung beseitigen konnte.
War ein bischen verzwickt, aber letztlich habe ich wieder etwas gelernt ....


Nur zur Erhellung, was bei mir falsch lief:
Ich habe in einem der Unterverzeichnisse (auf dem externen Server) eine .htaccess angelegt (beim Anlegen und 'Füllen" eines neuen Verzeichnisses), die auf eine eigene Error-Seite verweist. Und diese blöde .htaccess hatt nicht die notwendigen Rechte, was letztlich zu einem (mir alerdings nicht ganz verständlichen) Verhalten des "Lösch-Scriptes führten.

Ich habe jetzt meine "mkdir(..." - Funktion so geändert, dass die htaccess beim Anlegen (per chmod) auf 777 ges tzt wird. Und jetzt, wie gesagt, funktioniert auch die Löschung des Verzeichnisses.

Lokal hat's deshalb immer gut funktioniert, weil ich dort die htaccess überhaupt nicht angelegt hatte. Der lokale Ordner, den ich zu Versuchszwecken angelegt hatte, war nur ein dummy mit 'blödsinnigem' Inhalt...

Resume:
Wieder den Wald vor lauter Bäumen nicht gesehen, bzw. nicht präzise genug gearbeitet...

So, und jetzt wieder mal vielen Dank und liebe Grüße,
Sarah

PS: Ich "fürchte" nur, dass ich bald schon wieder Hilfer brauche könnte ... :)
 
Freut mich, dass ich helfen konnte. Und schäm dich bloss nicht etwas zu Fragen, dazu ist das Forum ja da. Im Gegensatz zu anderen Grünschnäbeln bist du ja lernwillig, da macht das helfen gleich doppelt Spass.
 
Zurück
Oben