php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 16.01.2006, 12:54  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard Löschen von Verzeichnissen mit ihrem Inhalten

Ich möchte Verzeichnisse im Server löschen. Allerdings erscheinen diese Fehlöermeldungen:
Code:
Warning: opendir(244811200518226): failed to open dir: No such file or directory in /homepages/datei.php on line 33

Warning: readdir(): supplied argument is not a valid Directory resource in /homepages/datei.php on line 35

Warning: closedir(): supplied argument is not a valid Directory resource in /homepages/datei.php on line 49

Warning: rmdir(244811200518226): No such file or directory in /homepages/datei.php on line 51
Mein Skript sieht wie folgt aus:
Code:
$ordner = ($_POST["ordner"]);
.
.
.

  function removeRekursiv($dir) 
  { 
    $dp = opendir($dir); 

    while($file = readdir($dp)) 
    { 
      $name = $dir . "/" . $file; 

      if ($file != "." && $file != "..") 
      { 
        if (is_dir($name)) 
          removeRekursiv ($name); 
        else 
          unlink($name); 
      } 

    } 

    closedir($dp); 

    rmdir($dir); 
  } 

  removeRekursiv("$ordner"); 
        echo "<p class='normal'>Datensatz gelöscht";
Wo ist der Fehler?
flual2000 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 16.01.2006, 12:56  
Erfahrener Benutzer
 
Registriert seit: 09.07.2004
Beiträge: 155
flual2000
Standard

Die angegeben Zahlen in den Fehlermeldungen entsprechen der Variable $ordner.
Tatsächlich existiert dieses verzeichnis mit der Nummer, die in den Fehlermeldungen angegeben ist.
flual2000 ist offline  
Alt 16.01.2006, 12:58  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von flual2000
Tatsächlich existiert dieses verzeichnis mit der Nummer, die in den Fehlermeldungen angegeben ist.
Da glaube ich PHP aber mehr als dir. Vermutlich ein Problem mit relativen/absoluten Pfaden. Ein echo $dir; in der Funktion sollte Klarheit schaffen.

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
3. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
4. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
5. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
6. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
7. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.


Gruß
phpfan
 
Alt 16.01.2006, 13:01  
Erfahrener Benutzer
 
Registriert seit: 25.04.2005
Beiträge: 1.356
HStev zeigte ein beschämendes Verhalten in der Vergangenheit
Standard

Als Tip:
removeRekursiv("$ordner");

$ordner ist bereits ein String

daran wirds aber nicht liegen

[edit] evl. $dir mit realpath zu einen Vollständigen Pfad wandeln
__________________
Gewisse Dinge behält man besser für sich, z.B. das man gewisse Dinge für sich behält.
HStev ist offline  
Alt 16.01.2006, 13:05  
Gast
 
Beiträge: n/a
Standard

Das mit den " sieht man doch immer wieder, keine Ahnung, wieso. Viel interessanter ist doch, dass sich Leute einen Quellcode per Copy/Paste ranholen und dann sofort in einem Forum nachfragen, wenn was nicht funktioniert. Ich liebe diese "Ich will ohne Fleiß den Preis"-Mentalität.

Gruß
phpfan
 
Alt 16.01.2006, 13:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard Re: Löschen von Verzeichnissen mit ihrem Inhalten

Zitat:
Zitat von flual2000
Warning: opendir(244811200518226): failed to open dir: No such file or directory in /homepages/datei.php on line 33
Das sagt doch schon alles.
Außerdem übergibst du deinem rekursiven Skript immer nur den relativen Ordnernamen zum übergeordneten Ordner. Benötigt würde aber der komplette Ordner-Pfad.

Beispiel
- ordnerEbene1
__- ordnerEbene2

removeRekursiv("ordnerEbene1")
__ removeRekursiv("ordnerEbene2");

So und das stimmt nicht, es muss heißen
removeRekursiv("ordnerEbene1/ordnerEbene2");

Abgesehen davon ist dein Denglisch furchtbar, oder fändest du sowas auch schick?: entferneDirectory();
...Entweder alles deutsch oder alles englisch, aber kein Mix!
Zergling-new ist offline  
Alt 16.01.2006, 13:12  
Gast
 
Beiträge: n/a
Standard Re: Löschen von Verzeichnissen mit ihrem Inhalten

Zitat:
Zitat von Zergling
Abgesehen davon ist dein Denglisch furchtbar
Das hat er ja nicht selbst geschrieben.

Gruß
phpfan
 
Alt 16.01.2006, 13:24  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Oh stimmt vergessen
Zergling-new ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP/MySQL Rechtemanagement von Inhalten - Ideen? nystagmussen PHP-Fortgeschrittene 3 28.07.2008 22:08
Nach Inhalten einer Tabelle suchen PHP Tipps 2006 3 08.03.2006 12:01
[Erledigt] Anlegen von Verzeichnissen mittels FTP-Funktionen PHP-Fortgeschrittene 5 13.02.2006 23:43
Javascript zum wechseln von zwei Inhalten erweitern HTML, Usability und Barrierefreiheit 0 08.10.2005 20:09
Suche Script zum Abfragen von Inhalten einer anderen Seite Beitragsarchiv 7 26.09.2005 19:21
cookies nur bestimmten verzeichnissen gültig? Crypi PHP Tipps 2005-2 2 15.08.2005 15:59
bilderanzahl in EXTERNEN Verzeichnissen netti PHP Tipps 2005-2 2 24.07.2005 21:07
dateien in mehreren Verzeichnissen zählen?!?! PHP Tipps 2005-2 3 18.06.2005 08:54
Links mit verschiedenen Inhalten und extra Fenster HTML, Usability und Barrierefreiheit 6 27.04.2005 22:23
[Erledigt] xml parser: problem mit großen Tag Inhalten PHP-Fortgeschrittene 2 14.04.2005 13:07
Fehler bei Verzeichnissen Filewalker PHP Tipps 2005 5 02.03.2005 18:22
PhP in virtuellen Verzeichnissen unter IIS mit ISAPI PHP Tipps 2005 0 17.01.2005 01:26
ANzeigen von Dateien oder Inhalten flual2000 PHP Tipps 2004-2 1 08.11.2004 12:31
[Erledigt] Dateien aus Verzeichnissen vom Webserver auslesen und linken PHP Tipps 2004 3 08.09.2004 10:07
Vergleich von Usereingabe und Inhalten der DB Datenbanken 10 30.08.2004 10:02


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:17 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.