CwCity Board >>> Programmier Sprachen >>> PHP, MySQL, Perl und CGI >>> [PHP] Alle Dateien und Unterverzeichnisse löschen
[PHP] Alle Dateien und Unterverzeichnisse löschen

Seiten: 1, 2, 3 >>
Verfasst am: 23.12.2005 um: 15:19 Uhr
 

Hallo Leute!

Sicher kennt ihr das: Ihr habt Dateien auf euren Space geladen, könnt aber keine Ordner löschen, weil noch Dateien darin sind. Dann dauert das löschen meistens sehr lange, da ihr erst alle Dateien und Unterverzeichnisse löschen müsst.

Dieses Skript schafft Abhilfe, es löscht wirklich alles:
tobias.quetschke.de/code/php/alle-d...

Testet es bitte erst local in einem Test-Verzeichnis, bei mir hat es zwar funktioniert, aber sicher ist sicher!

EDIT: Link geändert!



Letzte Änderung am: 01.04.2007 um:18:35 Uhr durch: quetschke
 



uno
Verfasst am: 23.12.2005 um: 15:38 Uhr
 
Dr. CwCity.de
Community God
Beiträge: 3666
SPAM:
0% Spam
Hat jemand ne leere Cw-Space?
Lad doch mal eine Datei hoch und gib ihr die Rechte 000, mal schauen, ob quetsche's Script damit klar kommt ;)

Gruess Uno

 

Verfasst am: 23.12.2005 um: 15:42 Uhr
 

Ja, wie gesagt ich hab Marktplatz.CwSurf.de damit leergeräumt, das ging... Rechte waren verschieden!

 

Pepe
Verfasst am: 23.12.2005 um: 15:54 Uhr
 
Dr. CwCity.de
Community God
Beiträge: 4879
SPAM:
0% Spam
Meiner Meinung nach hast du einen Wurm drin!
dele_files wird recursief angerufen, ja?
Der erste parameter $dir wird sofort auf "/" gesetzt und ist damit sofort hinfaellig? Wurm ich meine Bug?!

Pepe

= tschuess

 

Verfasst am: 23.12.2005 um: 16:00 Uhr
 

Nein, denn ich rufe ja $prevent.$dir dir, d.h. "/home/www/freehosting/{DEINE_CWID}/htdocs/" auf.
Warum sollte das zu einem Fehler führen?

Wichtiger Edit:
Habs auf cwmdevblog.cwsurf.de/ getestet, da gings ohne Probleme.
Aber Achtung, auf CwCity muss das Skript die Endung .php5 haben, da scandir() in php4 noch nicht verfügbar ist.


[Beitrag wurde am 23.12.2005, 16:09:15 das letzte Mal editiert]

 

Pepe
Verfasst am: 23.12.2005 um: 16:10 Uhr
 
Dr. CwCity.de
Community God
Beiträge: 4879
SPAM:
0% Spam
Sie bold und // weiter unten

function dele_files($dir,$prevent='/home/www/freehosting/{DEINE_CWID}/htdocs') {
===> hier wird der erste Parameter kaputt geschrieben: $dir.='/';
$array_files = scandir($prevent.$dir);
foreach($array_files as $file){
if($file != '.' and $file != '..' and $file != 'dele_all.php5'){
if(is_dir($prevent.$dir.$file)){
print 'ACCESS TO '.$prevent.$dir.$file.' DIR';
dele_files($file,$prevent.$dir).'';
//hier hilft $file nicht weil es sofort vernichtet wird und mit der gefundenen directory wird NICHT gemacht rmdir($prevent.$dir.$file);
}else{
print 'DELE '.$prevent.$dir.$file.': '.unlink($prevent.$dir.$file).'';
}
}
}
}



= tschuess

 

Verfasst am: 23.12.2005 um: 16:27 Uhr
 

Ähm Pepe, erstens funktioniert es so, und zweitens passiert das:

  
ACCESS TO /home/www/freehosting/23697/htdocs/auto-dump/-- DIR
DELE /home/www/freehosting/23697/htdocs/auto-dump/--/my.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/--/tpl_parse.php: 1
ACCESS TO /home/www/freehosting/23697/htdocs/auto-dump/--- DIR
DELE /home/www/freehosting/23697/htdocs/auto-dump/---/my.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/---/tpl_parse.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/INSTALL.txt: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/LICENSE.txt: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/documentation-en.txt: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/documentation-fr.txt: 1
ACCESS TO /home/www/freehosting/23697/htdocs/auto-dump/lang DIR
DELE /home/www/freehosting/23697/htdocs/auto-dump/lang/english.inc.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/lang/german.inc.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/pobs-ini.inc.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/pobs.php: 1
DELE /home/www/freehosting/23697/htdocs/auto-dump/pobslogo.gif: 1


So und in diesen Logs wird immer genau das ausgegeben was auch passiert!
Du siehst die URIs sind in Ordnung!

EDIT: Im ersten Beispiel gab es keine Subdirs, also jetzt eins mit Subdirs.

[Beitrag wurde am 23.12.2005, 16:29:24 das letzte Mal editiert]

 

Pepe
Verfasst am: 23.12.2005 um: 16:35 Uhr
 
Dr. CwCity.de
Community God
Beiträge: 4879
SPAM:
0% Spam
Hm, dann muss ich es doch noch ausprobieren, ...
Begreifen tue ich es noch nicht ...

Pepe

= tschuess

 

Verfasst am: 23.12.2005 um: 16:40 Uhr
 

An $dir wird bei jedem Aufruf ein / angehängt, da sonst, z.b.
/home/www/freehosting/23697/htdocs/auto-dumplangenglish.inc.php
Und das wäre ja wirklich ein bissel falsch!

 

Pepe
Verfasst am: 23.12.2005 um: 16:46 Uhr
 
Dr. CwCity.de
Community God
Beiträge: 4879
SPAM:
0% Spam
Ich sehe MEINEN Denkfehler es steht ein . vor dem = Zeichen
$dir .= '/';

Sorry, ist in Ordnung ...

Gruss
Pepe

= tschuess

 

 
Seiten: 1, 2, 3 >>

Folgende User sind hier gerade aktiv:
-

ANZEIGE