Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Mit PHP ein Verzeichnis löschen (https://www.delphipraxis.net/87208-mit-php-ein-verzeichnis-loeschen.html)

Matze 25. Feb 2007 08:38


Mit PHP ein Verzeichnis löschen
 
Hi,

seit Monaten habe ich auf meinem Server ein Verzeichnis, das ich nicht löschen kann, da irgendetwas die Rechte verändert haben muss. Dabei geht es nicht um CHMOD, sondern um irgendwelche Benutzerrechte. Langsam stört mich dieser Ordner, dass ich ihn endlich löschen möchte. Versucht habe ich es dann mit diesem Code, doch das funktioniert nicht.

Code:
<?php

/**
* function to delete a directory after unlinking all its files
*/
function delete_dir($dir_path)
{
   $dir = opendir($dir_path);

   while ($filename = readdir($dir))
   {
      $file_path = $dir_path . '/' . $filename;

      if ($filename != '.' && $filename != '..')
      {
         if (is_dir($file_path))
         {
            delete_dir($file_path);
         }
         else if (is_file($file_path) || is_link($file_path))
         {
            if (! unlink($file_path))
            {
               echo '<span style="color: red"/>The file "' . $file_path .
                  '" could not be deleted.</span>
';
            }
         }
      }
   }

   closedir($dir);

   return (rmdir($dir_path)) ? true : false;
}

if (isset($_GET['dir']) && ! empty($_GET['dir']))
{
   if (file_exists($_GET['dir']))
   {
      echo delete_dir($_GET['dir']) ? '<span style="color: green">Directory deleted sucessfully.</span>' :
         '<span style="color: red">The directory "' . $_GET['dir'] . '" could not be deleted.</span>';
   }
   else
   {
      echo '<span style="color: red">Directory does not exist.</span>';
   }
}

?>
Kann ich so überhaupt vorgehen? Bei mir tritt übrigens dieser Fehler auf:

Zitat:

Warning: rmdir(/home/www/web6/html/test): Permission denied in /home/www/web6/html/del_dir.php on line 29
The directory "/home/www/web6/html/test" could not be deleted.
Ich weiß nicht, wie ich das mit den Berechtigungen machen muss. Könnt ihr mir da bitte helfen?

Elvis 25. Feb 2007 08:46

Re: Mit PHP ein Verzeichnis löschen
 
Ich habe absolut keinen Plan von diesem optischen Appetitzügler, aber kennt PHP nicht mittlerweile Exceptions und ist das Schlucken von Exceptions ohne die richtige Meldung irgendwie weiterzugeben Anfängerfehler #1 in jeder Sprache? ;)

Matze 25. Feb 2007 08:52

Re: Mit PHP ein Verzeichnis löschen
 
Wo unterdrücke ich exceptions? Exceptions werden in PHP mit einem vorangestellten @ unterdrückt, also beispielsweise mit @rmdir. Wie du siehst, habe ich das nirgendwo und darum tritt doch auch die Exception bzw. die Warnung auf. :wall:

EDatabaseError 25. Feb 2007 08:54

Re: Mit PHP ein Verzeichnis löschen
 
Kannst du das Verzeichnis auch über FTP nicht löschen. Ich schätze die PHP Datei liegt in einem unterordner (/html/). Diese wird dann keinen Zugriff auf das root dir bekommen.


Tobi

Matze 25. Feb 2007 09:03

Re: Mit PHP ein Verzeichnis löschen
 
Hi,

nein per FTP geht es leider nicht, das ist das, was ich als aller erstes versucht habe

Zitat:

550 Delete operation failed.
Das Skript befindet sich in /html/

EDatabaseError 25. Feb 2007 09:04

Re: Mit PHP ein Verzeichnis löschen
 
Also ich persönlich würde jetzt den Hoster anrufen und den gaaaanz freundlich bitten das Verzeichnis zu löschen ;-)

Die Muhkuh 25. Feb 2007 09:05

Re: Mit PHP ein Verzeichnis löschen
 
Hi,

so ein Verzeichnis hatte ich auch mal. Ich musste beim Hoster anfragen, dass der mir das löscht. Eventuell solltest Du, sofern Du es noch nicht gemacht hast, Deinen Hoster benachrichtigen und nachfragen, ob er Dir das löscht.

Matze 25. Feb 2007 09:07

Re: Mit PHP ein Verzeichnis löschen
 
Moin

Jupp, das ginge natürlich, aber eine andere Möglichkeit wäre über ein Skript zu gehen. Ich würde gerne wissen, wie ich sowas selbst machen kann, falls dieses Problem wieder mal auftreten sollte.

Die Muhkuh 25. Feb 2007 09:08

Re: Mit PHP ein Verzeichnis löschen
 
Wenn Du oder Dein Script keine Rechte dafür hat, wirst Du es auch nicht löschen können. ;)

Matze 25. Feb 2007 09:19

Re: Mit PHP ein Verzeichnis löschen
 
Zitat:

Zitat von Die Muhkuh
Wenn Du oder Dein Script keine Rechte dafür hat, wirst Du es auch nicht löschen können. ;)

Ich habe das Verzeichnis angelegt, also werde ich das auch wieder löschen können. Lies dir hierzu mal meinen kurzen Artikel durch, dann weißt du, was ich meine. ;)

Khabarakh 25. Feb 2007 09:23

Re: Mit PHP ein Verzeichnis löschen
 
Zumindest bei All-Inkl existiert ein Tool zum Zurücksetzen der Besitzrechte eines Ordners. Der Support hat schließlich Besseres zu tun ;) .

Daniel G 25. Feb 2007 09:47

Re: Mit PHP ein Verzeichnis löschen
 
Welches FTP Programm nutzt du? Ich habe nämlich auch so ein Verzeichnis gehabt und habe einfach das Webfrontend genutzt, um das Verzeichnis zu löschen. Mein Windows-Programm konnte das nicht.

S2B 25. Feb 2007 11:30

Re: Mit PHP ein Verzeichnis löschen
 
Hi Matze,

vielleicht bringt dich das weiter: http://www.alcaeus.org/filelib_detail.php?file_id=30

Edit: Ich sehe gerade, dass du den Artikel bereits verlinkt hattest. :wall:

alcaeus 25. Feb 2007 11:43

Re: Mit PHP ein Verzeichnis löschen
 
Moin Matze,

guck bitte mal ob du chmod() darauf ausfuehren kannst, natuerlich rekursiv auf alle Dateien und Ordner. Bei mir hats dann nach ein paar Anlaeufen funktioniert.

Greetz
alcaeus

SnuffMaster23 25. Feb 2007 11:49

Re: Mit PHP ein Verzeichnis löschen
 
@Matze
Du weißt schon dass PHP standardmäßig nicht alle Exceptions anzeigt?
Code:
error_reporting(E_ALL);


1       E_ERROR
2       E_WARNING
4       E_PARSE
8       E_NOTICE
16      E_CORE_ERROR
32      E_CORE_WARNING
64      E_COMPILE_ERROR
128     E_COMPILE_WARNING
256     E_USER_ERROR
512     E_USER_WARNING
1024    E_USER_NOTICE
2047    E_ALL

bigg 25. Feb 2007 12:13

Re: Mit PHP ein Verzeichnis löschen
 
moin,

vielleicht hilft dir ja dieses Tool weiter: webadmin.php

Matze 25. Feb 2007 13:22

Re: Mit PHP ein Verzeichnis löschen
 
Hi, danke euch.

@Khabarakh: Das bietet mein Hoster nicht an.
@Daniel G: Ich nutze FileZilla, aber selbst über WebFTP, das bei Confixx dabei ist, klappt es nicht.
@SnuffMaster23: Jupp, das weiß ich. Meine Webseite läuft auch auf E_ALL, nur das Skript nicht, aber das muss es ja nicht, es sagt mir schließlich, dass etwas mit den Berechtigungen nicht passt.
@Andy: Achso, das werde ich mal testen. In deinem Skript machst du das genauso, nur dachte ich, da ich die Ordnerberechtigung auf 777 habe, würde dies reichen.
@bigg: WebAdmin schaue ich mir an, falls meine Lösung kombiniert mit Andys CHMOD-Vorschlag nicht funktioniert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:04 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz