Inital commit
This commit is contained in:
@@ -0,0 +1,508 @@
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||||
<!--
|
||||
TODO:
|
||||
- Löschbestätigung mit Passwort als 2. Schritt
|
||||
- Ursprünglichen Dateinamen in der Liste zeigen (erfordert neue Tabellenspalte)
|
||||
- Refactoring
|
||||
-->
|
||||
|
||||
<?php
|
||||
|
||||
// Das ist das Passwort zum Löschen von Dateien
|
||||
$passwort = 'rep ist toll';
|
||||
|
||||
// Das ist die Dateiliste. Bitte keine Änderungen vornehmen!
|
||||
/* Filelist:
|
||||
aTest.txt//Beschreibung1
|
||||
bTest.txt//Beschreibung2
|
||||
cTest.txt//Beschreibung3
|
||||
:Filelist */
|
||||
|
||||
?>
|
||||
|
||||
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
|
||||
|
||||
<style type="text/css">
|
||||
<!--
|
||||
body { font-family: "Trebuchet MS", Georgia, serif; }
|
||||
a { color:#0000CC; }
|
||||
table { border-collapse: collapse; }
|
||||
th { text-align: left; background-color:#EEEEEE; font-size: 80%; }
|
||||
|
||||
.menu { font-size: 80%; }
|
||||
.smallsize { font-size: 80%; }
|
||||
-->
|
||||
</style>
|
||||
|
||||
<title>Öffentliches Recht</title>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<?php // Hilfsfunktionen
|
||||
|
||||
$totalFiles = 0;
|
||||
$totalFileSize = 0;
|
||||
|
||||
function readFileList() {
|
||||
|
||||
global $totalFiles;
|
||||
global $totalFileSize;
|
||||
$lines = file('index.php');
|
||||
|
||||
if ($lines) {
|
||||
|
||||
$i = 0;
|
||||
|
||||
while ((!strstr(substr($lines[$i],0,14), "* Filelist:")) and ($i <= count($lines))) // Lies bis zur Dateiliste
|
||||
{
|
||||
$i++;
|
||||
}
|
||||
|
||||
if (strstr(substr($lines[$i],0,14), "* Filelist:")) {
|
||||
|
||||
// Dateiliste aus index.php lesen
|
||||
$i++;
|
||||
$j = 0;
|
||||
|
||||
while (!strstr(substr($lines[$i+$j],0,14), ":Filelist *")) {
|
||||
|
||||
$liste[$j] = explode("//", $lines[$i+$j]);
|
||||
$liste[$j][1] = preg_replace("/\r|\n/s", "", $liste[$j][1]); // Zeilenumbruch hinter Beschreibung entfernen
|
||||
|
||||
/*
|
||||
$descPos = strpos($lines[$i+$j], '//');
|
||||
$liste[$j][0] = substr($lines[$i+$j], 0, $descPos);
|
||||
|
||||
// Zeilenumbruch hinter Beschreibung entfernen
|
||||
$liste[$j][1] = preg_replace("/\r|\n/s", "", substr($lines[$i+$j], $descPos+2));
|
||||
*/
|
||||
|
||||
$liste[$j][2] = filesize($liste[$j][0]);
|
||||
|
||||
$totalFiles++;
|
||||
$totalFileSize += $liste[$j][2];
|
||||
|
||||
$j++;
|
||||
}
|
||||
return $liste;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getSizeAsString($size) {
|
||||
if ($size < 2) {
|
||||
return $size." Byte";
|
||||
}
|
||||
else if ($size < 1024) {
|
||||
return $size." Bytes";
|
||||
}
|
||||
else if ($size < 1048576) {
|
||||
return round(($size/1024), 2)." KB";
|
||||
}
|
||||
else {
|
||||
return round(($size/1048576), 2)." MB";
|
||||
}
|
||||
}
|
||||
|
||||
function convertFilename($str) {
|
||||
$out = $str;
|
||||
$ersetzungen[chr(167)] = "P."; // Spezielle Juristen-Ersetzung: Paragraphenzeichen
|
||||
$ersetzungen[chr(196)] = "Ae";
|
||||
$ersetzungen[chr(214)] = "Oe";
|
||||
$ersetzungen[chr(220)] = "Ue";
|
||||
$ersetzungen[chr(223)] = "ss";
|
||||
$ersetzungen[chr(228)] = "ae";
|
||||
$ersetzungen[chr(246)] = "oe";
|
||||
$ersetzungen[chr(252)] = "ue";
|
||||
$out = strtr($out,$ersetzungen);
|
||||
$out = eregi_replace("[^[:alnum:]_\.-]","_",$out); // TODO: mit preg_replace() ersetzen
|
||||
return $out;
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
<?php
|
||||
|
||||
//-- Hinzufügen ------------------------------------------------------------------------------------
|
||||
|
||||
if ($_GET['action'] == 'add') {
|
||||
|
||||
echo "<p class=\"menu\"><a href=\"index.php\">zurück zur Liste</a></p>\n";
|
||||
|
||||
// massive Login-Versuche abblocken
|
||||
sleep(1);
|
||||
|
||||
// Passwort checken
|
||||
if ($_POST['passwort'] == $passwort) {
|
||||
|
||||
$already_exists = file_exists($_FILES['datei']['name']);
|
||||
|
||||
if (($already_exists) and (!$overwrite == "on")) {
|
||||
echo "<p><b>Fehler:</b> Datei mit Namen <i>" . htmlspecialchars($_FILES['datei']['name']) . "</i> ist bereits vorhanden. (Überschreiben abgeschaltet.)</p>\n";
|
||||
}
|
||||
else {
|
||||
|
||||
$filename = convertFilename($_FILES['datei']['name']);
|
||||
|
||||
if (move_uploaded_file($_FILES['datei']['tmp_name'], $filename)) {
|
||||
|
||||
echo "<p>Die Datei <i>" . htmlspecialchars($_FILES['datei']['name']) . "</i> wurde übertragen.</p>\n";
|
||||
|
||||
$liste = readFileList();
|
||||
|
||||
if ($liste !== false) {
|
||||
|
||||
if ($liste !== NULL) {
|
||||
foreach($liste as $v) $s[] = $v[0];
|
||||
$idx = array_search($filename, $s);
|
||||
}
|
||||
|
||||
// FUNKY!
|
||||
if (gettype($idx) == 'integer') { // Dateiname bereits in Liste enthalten
|
||||
|
||||
$lines = file('index.php');
|
||||
|
||||
if ($lines) {
|
||||
|
||||
$fp = fopen("index.php","w+"); // Index-Datei zum Schreiben öffnen
|
||||
$i = 0;
|
||||
|
||||
while (!strstr(substr($lines[$i],0,14), "* Filelist:")) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
while (!strstr(substr($lines[$i], 0, strpos($lines[$i], '//')), $filename)) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
$i++;
|
||||
fputs($fp, $filename."//".$_POST['beschreibung']."\n");
|
||||
|
||||
while ($i < count($lines)) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
|
||||
echo "<p>Tabelleneintrag wurde aktualisiert.</p>\n";
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> <i>index.php</i> wurde nicht gefunden!</p>\n";
|
||||
}
|
||||
}
|
||||
else { // Dateiname noch nicht in Liste enthalten
|
||||
|
||||
$lines = file('index.php');
|
||||
|
||||
if ($lines) {
|
||||
|
||||
$fp = fopen("index.php","w+"); // Index-Datei zum Schreiben öffnen
|
||||
$i = 0;
|
||||
|
||||
while (!strstr(substr($lines[$i],0,14), "* Filelist:")) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
while (!strstr($lines[$i], "*/")) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
fputs($fp, $filename."//".$_POST['beschreibung']."\n");
|
||||
|
||||
while ($i < count($lines)) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
echo "<p>Tabelleneintrag wurde erzeugt.</p>\n";
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> <i>index.php</i> wurde nicht gefunden!</p>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> Liste mit Dateien konnte nicht gefunden werden.</p>\n";
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> Datei konnte nicht übertragen werden!</p>\n";
|
||||
echo "<p>\n";
|
||||
print_r($_FILES);
|
||||
echo "\n</p>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else { // Passwort falsch
|
||||
echo "<p><b>Fehler:</b> Falsches Passwort!</p>\n";
|
||||
}
|
||||
}
|
||||
|
||||
//-- Passwortabfrage vor Löschen -------------------------------------------------------------------
|
||||
|
||||
else if ($_GET['action'] == 'deleteCheck') {
|
||||
|
||||
echo "<p class=\"menu\"><a href=\"index.php\">zurück zur Liste</a></p>\n";
|
||||
|
||||
if (isset($_REQUEST['delButton'])) {
|
||||
|
||||
echo "<div style=\"margin:2em\">\n";
|
||||
echo " <b>Auswahl löschen:</b><br>\n";
|
||||
echo " <form action=\"index.php?action=delete\" method=\"post\">\n";
|
||||
echo " <table>\n";
|
||||
|
||||
reset($_REQUEST['delButton']);
|
||||
foreach ($_REQUEST['delButton'] as $idx => $filename) {
|
||||
echo " <tr>\n";
|
||||
echo " <td>".$filename."</td>\n";
|
||||
echo " <td align=\"right\"><input type=\"checkbox\" name=\"delButton[]\" value=\"".$filename."\" checked /></td>\n";
|
||||
echo " </tr>\n";
|
||||
}
|
||||
|
||||
echo " <tr>\n";
|
||||
echo " <td colspan=\"2\">\n";
|
||||
echo " <br><br>\n";
|
||||
echo " <span class=\"menu\">Passwort:</span>\n";
|
||||
echo " <input name=\"passwort\" type=\"password\" size=\"10\" /><br>\n";
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
echo " <tr>\n";
|
||||
echo " <td class=\"menu\" colspan=\"2\" align=\"right\">\n";
|
||||
echo " <input type=\"submit\" value=\"";
|
||||
if (count($_REQUEST['delButton']) > 1) {
|
||||
echo "Dateien löschen\" />\n";
|
||||
}
|
||||
else {
|
||||
echo "Datei löschen\" />\n";
|
||||
}
|
||||
echo " </td>\n";
|
||||
echo " </tr>\n";
|
||||
echo " </table>\n";
|
||||
echo " </form>\n";
|
||||
echo "</div>\n";
|
||||
|
||||
} else {
|
||||
echo "<p><b>Fehler:</b> Keine Datei ausgewählt.</p>\n";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//-- Löschen ---------------------------------------------------------------------------------------
|
||||
|
||||
else if ($_GET['action'] == 'delete') {
|
||||
|
||||
echo "<p class=\"menu\"><a href=\"index.php\">zurück zur Liste</a></p>\n";
|
||||
|
||||
// massive Login-Versuche abblocken
|
||||
sleep(1);
|
||||
|
||||
// Passwort checken
|
||||
if ($_POST['passwort'] == $passwort) {
|
||||
|
||||
if (isset($_REQUEST['delButton'])) {
|
||||
|
||||
reset($_REQUEST['delButton']);
|
||||
|
||||
foreach ($_REQUEST['delButton'] as $idx => $filename) {
|
||||
|
||||
echo "<p>Lösche <i>$filename</i>...</p>\n";
|
||||
unlink($filename);
|
||||
|
||||
$lines = file('index.php');
|
||||
|
||||
if ($lines) {
|
||||
|
||||
$fp = fopen("index.php","w+"); // Index-Datei zum Schreiben öffnen
|
||||
$i = 0;
|
||||
|
||||
while (!strstr(substr($lines[$i],0,14), "* Filelist:")) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
while (!strstr(substr($lines[$i], 0, strpos($lines[$i], '//')), $filename)) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
$i++;
|
||||
|
||||
while ($i < count($lines)) {
|
||||
fputs($fp, $lines[$i]);
|
||||
$i++;
|
||||
}
|
||||
|
||||
fclose($fp);
|
||||
echo "<p>Tabelleneintrag wurde entfernt.</p>\n";
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> <i>index.php</i> wurde nicht gefunden!</p>\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> Keine Dateien ausgewählt.</p>\n";
|
||||
}
|
||||
}
|
||||
else { // Passwort falsch
|
||||
echo "<p><b>Fehler:</b> Falsches Passwort!</p>\n";
|
||||
}
|
||||
}
|
||||
|
||||
//-- Anzeigen --------------------------------------------------------------------------------------
|
||||
|
||||
else {
|
||||
?>
|
||||
|
||||
<p class="menu"><a href="../index.html">zurück zur Startseite</a></p>
|
||||
|
||||
<div align="center">
|
||||
<form action="index.php?action=deleteCheck" method="post">
|
||||
|
||||
<table cellspacing="5" cellpadding="5" border="1">
|
||||
<tr>
|
||||
<th><a href="index.php?action=<?php if (($_GET['action'] == 'ascByName') || ($_GET['action'] == '')) echo "descByName"; else echo 'ascByName';?>">Datei</a></th>
|
||||
<th><a href="index.php?action=<?php if ($_GET['action'] == 'ascByDescription') echo "descByDescription"; else echo 'ascByDescription';?>">Beschreibung</a></th>
|
||||
<th><a href="index.php?action=<?php if ($_GET['action'] == 'ascBySize') echo "descBySize"; else echo 'ascBySize';?>">Größe</a></th>
|
||||
<th>Auswahl</th>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
$liste = readFileList();
|
||||
|
||||
if ($liste !== false) {
|
||||
|
||||
if (isset($liste)) {
|
||||
|
||||
// Liste sortieren
|
||||
if ($_GET['action'] == 'ascByDescription') {
|
||||
foreach($liste as $v) $s[] = $v[1];
|
||||
array_multisort($s, SORT_ASC, $liste);
|
||||
}
|
||||
else if ($_GET['action'] == 'descByDescription') {
|
||||
foreach($liste as $v) $s[] = $v[1];
|
||||
array_multisort($s, SORT_DESC, $liste);
|
||||
}
|
||||
else if ($_GET['action'] == 'ascBySize') {
|
||||
foreach($liste as $v) $s[] = $v[2];
|
||||
array_multisort($s, SORT_ASC, $liste);
|
||||
}
|
||||
else if ($_GET['action'] == 'descBySize') {
|
||||
foreach($liste as $v) $s[] = $v[2];
|
||||
array_multisort($s, SORT_DESC, $liste);
|
||||
}
|
||||
else if ($_GET['action'] == 'descByName') {
|
||||
foreach($liste as $v) $s[] = $v[0];
|
||||
array_multisort($s, SORT_DESC, $liste);
|
||||
}
|
||||
else {
|
||||
sort($liste);
|
||||
}
|
||||
|
||||
// Liste ausgeben
|
||||
foreach ($liste as $eintrag) {
|
||||
echo " <tr>\n";
|
||||
echo " <td><a href=\"". $eintrag[0] ."\">". $eintrag[0] ."</a></td>\n";
|
||||
echo " <td>".$eintrag[1]."</td>\n";
|
||||
echo " <td align=\"right\"><span class=\"smallsize\">".getSizeAsString($eintrag[2])."</span></td>\n";
|
||||
echo " <td align=\"center\"><input type=\"checkbox\" name=\"delButton[]\" value=\"".$eintrag[0]."\" /></td>\n";
|
||||
echo " </tr>\n";
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
else {
|
||||
echo "<p><b>Fehler:</b> Liste mit Dateien konnte nicht gefunden werden.</p>\n";
|
||||
}
|
||||
|
||||
?>
|
||||
<tr>
|
||||
<td class="menu" colspan="4" align="right">
|
||||
<input type="submit" value="Ausgewählte Dateien löschen" style="font-size:105%" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="4" align="center" class="smallsize">
|
||||
<?php echo $totalFiles; ?> Dateien, <?php echo getSizeAsString($totalFileSize); ?><br>
|
||||
<span style="font-size: 80%">Lister v2.9j</span>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div align="center">
|
||||
<table cellspacing="5" cellpadding="5" border="1">
|
||||
<tr>
|
||||
<td colspan="4">
|
||||
<div style="padding:8px">
|
||||
<div class="menu">Datei hinzufügen:</div>
|
||||
<form action="index.php?action=add" method="post" enctype="multipart/form-data">
|
||||
<table border="0" cellpadding="2" class="menu">
|
||||
<tr>
|
||||
<td>
|
||||
Datei:
|
||||
</td>
|
||||
<td>
|
||||
<input name="datei" type="file" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Beschreibung:
|
||||
</td>
|
||||
<td>
|
||||
<input name="beschreibung" type="text" size="30" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td>
|
||||
<input type="checkbox" name="overwrite" /><span style="font-size:small">bereits vorhandene überschreiben</span>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
Passwort:
|
||||
</td>
|
||||
<td>
|
||||
<input name="passwort" type="password" size="10" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" align="right" class="menu">
|
||||
<input type="submit" value="Datei hochladen" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<div style="position: absolute; top: 8px; right: 5px;">
|
||||
<a href="http://validator.w3.org/check?uri=referer"><img border="0" src="http://www.w3.org/Icons/valid-html40" alt="Valid HTML 4.0!" height="31" width="88"></a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user