Webspace komplett Leeren mit PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
all
check
code
datei
file
frage
ftp
header
jahr
list
login
meinung
ordner
pfad
quellcode
sekunde
session
start
url
verzeichnis
-
Hallo
damit ich Dateien und ganze Ordner vom Webspace mit einem Klick löschen kann
habe ich mir ein kleines PHP Script gebaut bei dem man sich mit Passwort einloggt,
und dann Ordner oder Dateien zum Löschen auswählen kann (click --> delete)
ich hoffe das dieser Code-Schnipsel auch für andere nützlich ist. wenn man seinen Webspace einmal aufräumen will oder Quasi für einen RESET zum ganz Neu anfangen ohne Alt-Lasten oder Datenmüll zu haben für einen Neustart auf dem Webspace
zur Info: der Start-Ordner (Pfad) setzt man über die Variable $ordner
mit diesem Wert "." (Punkt)
wird der aktuelle Ordner$ordner = ".";
genommen (in dem sich dieses Script befindet) man kann auch Unter-Ordner angeben
wie zum Beispiel
oder$ordner = "cache";
etc.$ordner = "dein/verzeichnis/pfad";
Wichtig ...
... bitte vor Nutzung Passwort ändern.$admpwd = 'geheim';
.... Quellcode auf Pastebin (php)
<?php // ---------------------------------------------------- header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); session_start(); // ---------------------------------------------------- // ------ DIR ... Ordner / Verzeichnis / Pfad ----- $ordner = "."; // ---------------------------------------------------- // ------ Passwort Login --- pls CHANGE this Value --- $admpwd = 'geheim'; // ---------------------------------------------------- // ------ Hash Passwort (md5) ----- $saltkey = 'L4r7uBc6i'; $sec_apw = md5($admpwd.$saltkey); // ---------------------------------------------------- // ------ Diese Datei (filename) ----- $runfile = $_SERVER['PHP_SELF']; $runfile = trim($runfile ,'/'); // ---------------------------------------------------- // ------ User Eingabe ----- if (!empty($_POST['lpw'])) { $go_lpw = $_POST['lpw']; } else { $go_lpw = ''; } if (!empty($_GET['a'])) { $goa = $_GET['a']; } else { $goa = ''; } if (!empty($_GET['delete'])) { $go_delete = trim(chop($_GET['delete'])); } else { $go_delete = ''; } // ---------------------------------------------------- // ------ Session User --- Login ----- if (!empty($go_lpw)) { ## $go_lpw = trim(chop($go_lpw)); $sec_upd = md5($go_lpw.$saltkey); if ($sec_upd == $sec_apw) { $_SESSION['xpw'] = $sec_upd; } else { session_unset(); session_destroy(); } } // ---------------------------------------------------- // ------ Session User --- Logout ----- if ($goa == 'logout') { session_unset(); session_destroy(); header('Location: '.$runfile.''); exit; ### print "\n".'<meta http-equiv="refresh" content="1; URL='.$runfile.'">'."\n"; } // ---------------------------------------------------- // ------ function ----- deldir ----- function deldir($dir) { $dp = opendir($dir); while($file = @readdir($dp)) { $name = $dir . "/" . $file; if ($file != "." && $file != "..") { if (is_dir($name)) { deldir ($name); } else { chmod($name,0755); unlink($name); } } } @closedir($dp); chmod($dir,0755); @rmdir($dir); return true; } // --------------------------------------------------------------- // ------ function ----- run_delete ----- function run_delete ($fname='') { if (is_file($fname)===TRUE) { chmod($fname,0755); unlink($fname); $out=2; } else { $out = (@deldir($fname)!==false)?1:0; } return $out; } // ---------------------------------------------------- print '<div style="margin:0 auto; padding:4px; width:820px; background:#DEDEDE;">'."\n"; print '<h2 style="margin:6px 12px; padding:8px; background:#FFFFAA;"><a href="'.$runfile.'" style="text-decoration:none;">'.$ordner.'/'.$runfile.'</a></h2>'."\n"; // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ------ START ... Check Login Session ----- if (isset($_SESSION['xpw']) && $_SESSION['xpw'] == $sec_apw) { // ---------------------------------------------------- // ------ Top-Navigation / Main-Menu ----- print "<hr />\n"; print "<p>--- <a href=\"".$runfile."\">HOME</a> --- <a href=\"".$runfile."?a=alle\">ALLE</a> --- <a href=\"".$runfile."?a=logout\">LOGOUT</a> --- </p>\n"; print "<hr />\n"; print "<br />\n"; // ---------------------------------------------------- // ------ Run Delete Dir / File ----- if (!empty($go_delete)) { $delx = run_delete($go_delete); print '<br> - DELETE: <span style="color:red;">'.htmlentities($go_delete).'</span>'."\n"; ## print "\n".'<meta http-equiv="refresh" content="1; URL='.$runfile.'">'."\n"; } ## if ($goa == 'xall' || $goa == 'alle') { print "\n".'<meta http-equiv="refresh" content="1; URL='.$runfile.'">'."\n"; } // --------------------------------------------------------------- // ------ Open Dir ----- $ordner = trim($ordner.'/'); $handle = opendir($ordner); $dxf_file = array(); $dxf_path = array(); // ---------------------------------------------------- // ------ Loop --- Files in Dir ----- while ($file = readdir ($handle)) { if($file != "." && $file != ".." && $file != $runfile) { if(is_dir($ordner."/".$file)) { $dxf_path[] = $file; } else { $compl = $ordner."/".$file; if ($goa == 'xall') { $rdx = run_delete($file); print '<br> - DELETE: <span style="color:red;">'.htmlentities($file).'</span>'."\n"; } else { $dxf_file[] = $file; } } if ($goa == 'alle') { $rdx = run_delete($file); print '<br> - DELETE: <span style="color:red;">'.htmlentities($file).'</span>'."\n"; } } } // ---------------------------------------------------- // ------ Close Dir ----- closedir($handle); // ------------------------------------------------------------------------ // ---------------------------------------------------- // ---------------------------------------------------- // ------ List Dirs ----- print '<p> DIRS </p>'."\n"; print '<br />______________________'."\n"; foreach($dxf_path as $pathitm) { print '<br /> DELETE DIR - <a href="'.$runfile.'?delete='.urlencode($pathitm).'">'.$pathitm.'</a>'."\n"; } print '<br />'."\n"; print '<br /> '."\n"; // ---------------------------------------------------- // ---------------------------------------------------- // ------ List Files ----- print '<p> FILES </p>'."\n"; if (!empty($dxf_file)) { print '<p> DELETE --- <a href="'.$runfile.'?a=xall">ALL FILES</a> --- (in this DIR) </p>'."\n"; } print '<br />______________________'."\n"; foreach($dxf_file as $fileitm) { print '<br /> DELETE FILE - <a href="'.$runfile.'?delete='.urlencode($fileitm).'">'.$fileitm.'</a>'."\n"; } print '<br />'."\n"; print '<br /> '."\n"; // ---------------------------------------------------- // ---------------------------------------------------- print '<br />'."\n"; print '<br /> '."\n"; // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ------ ELSE ... Check Login Session ----- } else { // ---------------------------------------------------- // ------ Login Form ----- $login_formular1 = ' <form name="form1" method="post" action="'.$runfile.'"> Password: <input type="text" name="lpw" size="24" maxlength="100"> OK: <input type="submit" name="go" value="Login"> </form> '; // ---------------------------------------- print "<br />\n"; print "<br />\n"; print $login_formular1; print "<br />\n"; print "<br />\n"; // ---------------------------------------- } // ---------------------------------------------------------------------- // ---------------------------------------------------------------------- // ------ ENDE ... Check Login Session ----- // ---------------------------------------------------- print "<br />\n"; print "<br />\n"; print "</div>\n"; // ---------------------------------------------------- print "<br />\n"; print "<br />\n"; print "<br />\n"; // ---------------------------------------------------- ?>
den Quell-Code kopieren und als neue Datei z.B: _delete_all.php speichern.
.... Quellcode auf Pastebin (php)
wenn man das Script / die Datei direkt in das Haupt-Verzeichnis "default-website" hochläd,
dann kann man nach Login auch mit 1 Klick auf ALLE den kompletten Webspace leeren
oder einzelne Dateien oder einzelne (direkte) Unter-Ordner per Klick löschen
wie findet Ihr PHP Experten diesen kleinen Code zum Leeren von Webspace / Ordner ??? Gibt es Kritik und Meinungen oder habt Ihr evtl auch Verbesserungs-Vorschläge oder Ideen dazu was darin noch fehlt oder besser geht ???
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
also ich hab ne recht simple/schnelle Lösung um bei mir aufzuräumen die auch bis jetzt immer super funktioniert hat...
Einfach Skript hochladen, ausführen und das skript wieder löschen, fertig.
Ist vielleicht nicht ganz so schön wie deins... aber um ein Verzeichnis zu löschen (meistens weiß man ja welches man löschen will) braucht man meiner Meinung nach kein all zu kompliziertes / aufwändiges Skript
<?php function rrmdir($dir) { if (is_dir($dir)) { $objects = scandir($dir); foreach ($objects as $object) { if ($object != "." && $object != "..") { if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); } } reset($objects); rmdir($dir); } } //Pfad der gelöscht werden soll rrmdir("./magento"); ?>
-
Wer nen Script braucht, um den Webspace zu leeren und neu anzufangen (und dabei mysql vergisst) macht was falsch Leute ...
Warum lege ich sowas wichtiges in die Hand von einem Script, das von überall aus aufrufbar ist und so wie ich das sehe auch noch gebrutforced werden kann?
Zumal es echt kein Problem ist, mit einem beliebigem FTP-Client zu verbinden, von Lima-City wird sogar einer angeboten, den man über das Web erreichen kann. -
DB kann man ja recht leicht über PhpMyAdmin löschen... da es (meist) nur eine DB gibt mit x Tabellen...
Und so ein Script kommt bei mir nur auf den Server wenn ich aktiv das Verzeichnis löschen will - das dort immer liegen haben wäre verdammt leichtsinnig (da hast du schon recht)...
Aber zur eig. Frage - warum ein Script? - Schon mal >30k Dateien per FTP gelöscht?
Da sitzt du nächstes Jahr noch dran :P
per Script ist das ne Sache von X-Sekunden...
Gruß Dennis
-
scriptserv schrieb:
DB kann man ja recht leicht über PhpMyAdmin löschen... da es (meist) nur eine DB gibt mit x Tabellen...
Und so ein Script kommt bei mir nur auf den Server wenn ich aktiv das Verzeichnis löschen will - das dort immer liegen haben wäre verdammt leichtsinnig (da hast du schon recht)...
Aber zur eig. Frage - warum ein Script? - Schon mal >30k Dateien per FTP gelöscht?
Da sitzt du nächstes Jahr noch dran :P
per Script ist das ne Sache von X-Sekunden...
Gruß Dennis
Wie wärs denn mit STRG+A und dann löschen? :D -
Wie wärs denn mit STRG+A und dann löschen? :D
Wenn alles nur so einfach wäre :'D
Nein, Spaß bei Seite...
Installier mal Magento2 auf deinem Webspace (das sind über 30.000 Dateien) und drück STRG+A und lösch die "Manuell"...
bis alles per FTP Verbindung gelöscht ist sitzt du wirklich 3-4 Stunden dran, das Script braucht Maximal 3-4 Sekunden :P -
scriptserv schrieb:
Aber zur eig. Frage - warum ein Script? - Schon mal >30k Dateien per FTP gelöscht?
Der LimaCity-FTP-Dateimanager ist wesentlich schneller als FileZilla und Co.. Das Löschen einer kompletten WP-Installation dauerte gefühlt 2-3 Sekunden.
Allerdings - das gebe ich zu- hängt sich dieser Dateimanager bei großen Datenmengen auch gern mal auf.
Also aus der Sicht, wer täglich seinen kompletten Webspace 2-3 x löscht und dabei nichts Besseres zu tun hat, als auf den Bildschirm zu schauen, der kann das kleine Programm bestimmt gebrauchen.
Der Einwand von @tchab ist aber auf jeden Fall richtig: der Titel des Threads ist einfach falsch.
Nebenbei noch gesagt: Hier sollte ein großes Ausrufezeichen erscheinen, etwa: Anfänger !!! Vorsicht !!! -
geile Idee... das ist wirklich eine perfide Idee, die dummen weiter zu trollen. danke
ich probier jetzt einfach mal die webdirs einiger User hier auf lima und suche nach einem delete_all.php oder _delete_all.php und freu mich schon, wie viele volldeppen dieses script bei sich hinpacken... user012 könnte ich gleich mal besuchen gehen...
und falsch ist es außerdem, das script kann sich zur ausführung wohl kaum selbst löschen... somit ist der webspace auch nciht komplett leer...
außerdem ist das script hässlich und wenig elegant(etwas OOP täte nicht schaden)... zudem wäre es ein sinnreicheres Tool, wenn man zum rekursiven löschen unterordner selektieren kann, ohne das script umzuschreiben... manchmal wil man einen bilderordner behalten oder eben nur einen ordner mit umfangreichen erweiterungen löschen...
-
Ich habe heute festgestellt, dass die beiden Scripte doch ganz nützlich sind.
Ich hatte per (fehlerhaftem) PHP-Script ein Verzeichnis mit Namen \xxxneu (also Slash im Namen) angelegt. Per FPT kam man da weder rein noch konnte man es löschen. Mit den beiden Lösch-Scripten klappt es.
Das von @campz scheint aber einen Fehler zu enthalten, denn es funktioniert nicht in Unterverzeichnissen. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage