Skip to content

Instantly share code, notes, and snippets.

@mbaersch
Last active September 22, 2016 14:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mbaersch/3fd34c345764aa28e7f84ade252649ec to your computer and use it in GitHub Desktop.
Save mbaersch/3fd34c345764aa28e7f84ade252649ec to your computer and use it in GitHub Desktop.
PHP Script zum Löschen verwaister Seiten, Kategorien und Produkte aus einem Collmex-Shop
<?php
/* Collmex Cleanup: Alte Collmex-Shop-Dateien vom Server entfernen
Version 1.0.0.1 vom 21.09.2016
M. Baersch, gandke marketing & software gmbh - www.gandke.de
*/
// Tragen Sie hier das Passwort ein, dass zum Starten der gewaehlten Aktion angegeben werden muss. Es dient dem Schutz Ihres Shops!
// Ohne Nutzung eines Kennworts kann jeder das Script aufrufen und dadurch Dateien loeschen. Nehmen Sie uns diese Huerde daher bitte
// nicht krum. Geben Sie ein Kennwort (welches kein " enthalten sollte) zwischen den Anfuehrungszeichen in der naechsten Zeile ein.
$setup_kennwort = "" ;
// Das Script kann Dateien mit bestimmten Worten im Dateinamen ignorieren, so dass z. B. Verifikationsdateien von Google, Dr. Malware
// oder anderen Diensten nicht geloescht werden, obschon diese aelter sind als das angegebene Grenzdatum. Damit Sie dies nicht immer
// wieder neu definieren muessen, wenn es bestimmte Dateien zu schuetzen gilt, kann hier eine Vorgabe eingetragen werden. Im
// Zweifelsfall einfach leer lassen und checken, was eine Auflistung der gefundenen Dateien zurueckliefert. Zur Verwendung ganze
// Dateinamen oder Fragmente durch ein | getrennt in Klammern eingeschlossen hier eintragen.
// Beispiel (gemeinsames_fragment_aus_mehreren_dateinamen|ganzer_dateiname1|ganzer_dateiname2|ganzer_dateiname3)
$setup_ausnahmen = "(google|drmalware)" ;
?>
<!doctype html><html lang="de">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex,nofollow">
<title>Collmex Shop bereinigen</title>
<style type="text/css">
body{font-family:Verdana,Arial,sans-serif;background:#ddd;text-align:center;font-size:89%;color:#222}
#content{margin:20px auto;text-align:left;max-width:800px;padding:2em;border:1px solid #222;background:#fff}
small{font-size:0.8em}
label{font-weight:bold}
input,select,textarea{margin:6px 0;min-width:180px}
#start{font-size:1,2em;padding:8px 28px}
</style>
</head>
<body>
<div id="content">
<?php
/**********************************************************************/
if ($setup_kennwort == "") die('Bitte ein Kennwort im Quelltext des Scripts eintragen (siehe Kommentar), damit es verwendet werden kann!') ;
$del_dtm = $_POST['del_dtm'] ;
$psw = $_POST['p'] ;
$action = $_POST['action'] ;
$ausnahmen = $_POST['ausnahmen'] ;
$ddayf = date("d.m.Y") ;
if (!isset($psw)) {
//Formular ausgeben
echo '<h1>Alte Collmex-Shop-Dateien l&ouml;schen</h1>' ;
echo '<h2>Achtung!</h2>' ;
echo '<p>Dieses Script l&ouml;scht bei Auswahl der Aktion <em>L&ouml;schen</em> statt <em>Auflisten</em> <b>unwiederbringlich</b> alle '.
'HTML-Dateien im aktuellen Verzeichnis des Scripts, die &auml;lter sind als das angegebene Datum!</p>' ;
echo '<p>Diese Funktion dient dazu, nach einem <b>vollst&auml;ndigen Hochladen des Collmex-Shops</b> alle HTML-Dateien zu entfernen, '.
'die nicht aktualisiert wurden und daher Seiten, Produkte oder Kategorien enthalten, die nicht mehr angeboten oder umbenannt wurden.' ;
echo '<p>Der Einsatz geschieht auf eigene Gefahr! Vor dem ersten Einsatz wird dringend empfohlen, eine Sicherung aller Dateien im behandelten Verzeichnis anzufertigen.</p>' ;
echo '<h2>Dateien suchen / l&ouml;schen</h2>' ;
echo '<form method="post">' ;
echo '<label for="del_ftm">Grenzdatum</label><br /><input type="text" name="del_dtm" value="'.$ddayf.'"><br />' ;
echo '<small>Vergleichsdatum f&uuml;r den Vorgang eingeben. Alle HTML-Dateien, die &auml;lter sind, werden aufgelistet bzw. gel&ouml;scht.</small><br /><br />' ;
echo '<label for="ausnahmen">Ausnahmen</label><br /><textarea name="ausnahmen">'.$setup_ausnahmen.'</textarea><br />' ;
echo '<small>Bei Bedarf kann hier ein Muster eingegeben werden, nach dem HTML-Dateien identifiziert werden k&ouml;nnen, '.
'die nicht betroffen sein sollen. Infos dazu siehe Kommentare im Script.</small><br /><br />' ;
echo '<label for="p">Kennwort</label><br /><input type="password" name="p"><br />' ;
echo '<small>Kennwort zur Authentifizierung f&uuml;r den Vorgang eingeben.</small><br /><br />' ;
echo '<label for="action">Aktion w&auml;hlen</label><br /><select name="action"><option value="list">Auflisten</option><option value="delete">L&ouml;schen</option></select><br /><br /><br />' ;
echo '<input id="start" type="submit" value="Vorgang starten">' ;
echo '</form>' ;
} else {
if ($psw != $setup_kennwort) die('Kennwort falsch, Sorry!') ;
$deldt = date($del_dtm) ;
$ddtt = strtotime($ddayf);
$deltt = strtotime($deldt);
if ($ddtt < $deltt) die('Das Datum liegt in der Zukunft, da l&ouml;schen wir lieber nichts!') ;
if ($action === 'delete') $was = "l&ouml;schen"; else $was = 'auflisten' ;
echo "<h1>HTML-Dateien $was, die &auml;lter als $deldt sind</h1><p>" ;
$x = 0 ;
$skip = 0 ;
foreach (glob("*.html") as $filename) {
$fd = filemtime($filename) ;
$fdf = date('d.m.Y', $fd) ;
$fdtt = strtotime($fdf);
if (($deltt > $fdtt) && (($ausnahmen == '') || !preg_match('/'.$ausnahmen.'/i', $filename))) {
echo "$filename ($fdf)<br />" ;
$x++ ;
if ($action === 'delete') unlink($filename);
} else $skip++ ;
}
echo "</p><p><b>$x Dateien</b> ($skip &uuml;bergangen / aktuell)</p>" ;
}
?>
</div>
</body>
</html>
@mbaersch
Copy link
Author

mbaersch commented Sep 22, 2016

Es ist weder eine komplexe Aufgabe noch eleganter Code, aber es erfüllt seinen Zweck :) Ich kenne faktisch keinen Collmex-Shop, bei dem keine HTML-Leichen auf dem Server existieren, die durch Umstrukturierung entstanden und alt genug sind, um Traffic aus Suchmaschinen zu erhalten, die dann auf nicht lieferbaren Produkten und / oder Seiten mit veraltetem Design o. Ä. landen. Wer nicht regelmäßig per FTP aufräumen mag, kann ersatzweise dieses Script nutzen.

Bedienungshinweise und weitere Infos unter http://blog.gandke.de/CollmexShop+Von+Altlasten+Befreien.aspx

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment