Gedanklicher Ansatz zu Issue 87

Post non-phpwcms related topics here - but I don't want to see "hey check this or that other cms". Post if you have a point or worthwhile comment, don't post just to increase you post count!
Post Reply
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Gedanklicher Ansatz zu Issue 87

Post by Uwe367 »

Vor einiger Zeit erstellte ich mal ein Issue, https://github.com/slackero/phpwcms/issues/87, und nun habe ich mich mal daran gemacht dazu selbst etwas beizutragen. Ich muß vorweg sagen daß ich absoluter Neuling in PHP bin, daher möge es man mir nachsehen wenn das, was ich an Code poste, nicht ganz den Richtlinien und vor allem auch nicht ganz den Sicherheitsrichtlinien entspricht.

So.. nun mal zu meinem Vorhaben...
Ich habe ein eigenständiges Script geschrieben welches mir schonmal die Dateien, die aus der Dateizentrale gelöscht wurden und somit mit in der DB mit trash=9 markiert sind, in einer Tabelle auflistet. Soweit, sogut. Nun wollte ich diees Variable dazu nutzen um mittels unlink die Dateien vom Server zu löschen.

Kurze Erläuterung: Mit unlink() lassen sich Dateien von einem Server löschen.

Ok.. das dazu. In meiner Tabelle lasse ich mir den jeweiligen Bildnamen, den Hash, die Dateiendung sowie Trash ausgeben aber wozu den Hash? Ganz einfach....
Im Verzeichnis filearchive werden die Dateien nicht mit ihrem Original Bildtitel gespeichert sondern als Hashes, also ne ellenlange Nummer plus Endung, z.B. so: 1f21083e726ef5a668b550352fbaf2d2.jpg
Ok.. also lasse ich mir Hash und Endung ausgeben und mit diesen beiden müßte ich dann theoretisch auch weiterabeiten da die Dateien auch so auf dem Server liegen. Name und Trash lasse ich nur zur Kontrolle ausgeben.

Arbeiten wir also mit Hash und Endung weiter. Jedoch fiel mir auf daß der Punkt zwischen Dateiname und Endung fehlt, also muß ich diesen wohl in einer Variablen deklarieren und später mittels Verkettungsoperator zwischen Hash und Endung platzieren.

Tja.... wenn jemand Interesse hat würde ich mich freuen wenn wir dieses Script vielleicht dazu bewegen könnten das zu tun was es tun soll und wenn das funktioniert, es evtl. als Modulfür phpwcms aufbereiten.
Zur Zeit bekomme ich eine Fehlermeldung: Warning: unlink(E:/xampp/htdocs/phpw/filearchive/.): Permission denied in...

Ok.. diese Meldung besagt daß das Script keine Zugiffsrechte hat, wobei ich mir da allerdings nicht sicher bin denn wenn ich eine Datei gezielt mit unlink anspreche, wie z.B. so

Code: Select all

unlink ($_SERVER['DOCUMENT_ROOT']. "/test/2.jpg");
so wird die Datei gelöscht.
Daher denke ich daß ich einen Fehler bei den Variablen habe und daß da zuerst etwas konvertiert werden muß, aber was?

Wie gesagt.. vielleich that ja jemand Interesse mit mir zusammen daran mitzuarbeiten.
Achso... die Verwendung des Scriptes erfolgt auf eigene Gefahr. Ich rate an das Script nur auf em localhost zu verwenden.

Und nochmals.... Ich fange gerade erst mit PHP an, aber ich wills lernen.
Und nun der Code des Scripts:

Code: Select all

<?php
$con = mysqli_connect('localhost', 'user', 'password');
mysqli_select_db($con, "DB");
$res = mysqli_query($con, "Select f_hash, f_ext, f_trash, f_name FROM phpwcms_file WHERE f_trash = 9");

// Tabellenbeginn
echo "<table border='1'>";

// Überschrift
echo "<tr> <td>Lfd. Nr.</td> <td>Name</td>";
echo "<td>Hash</td> <td>Endung</td> <td>Trash</td>";
$lf = 1;
while ($dsatz = mysqli_fetch_assoc($res))
{
	echo "<tr>";
	echo "<td>$lf</td>";
	echo "<td>" . $dsatz["f_name"] . "</td>";
	echo "<td>" . $dsatz["f_hash"] . "</td>";
	echo "<td>" . $dsatz["f_ext"] . "</td>";
	echo "<td>" . $dsatz["f_trash"] . "</td>";
	echo "</tr>";
	$lf = $lf + 1;
}

//Tabellenende
echo "</table>";


$punkt = '.';
$path = ($_SERVER['DOCUMENT_ROOT']. "/phpw/filearchive/" . $dsatz["f_hash"] . $punkt . $dsatz["f_ext"]);
unlink ($path);

mysqli_close($con);

?>
Und anbei noch ein Screenshot wie das ganze derzeit im Browser aussieht:

Image
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Gedanklicher Ansatz zu Issue 87

Post by juergen »

2.jpg gibt es nicht.

Das heiß so als du es hochgeladen hast, dann wurde es in den hash gewandelt. Lösche das file mit dem hash und du wirst gekrönt :)

also das 6z7rhjfkljaeswjrfkjrfkfkgfkgkgk.jpg :)
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Gedanklicher Ansatz zu Issue 87

Post by juergen »

wenn du @unlink schreibst werden Fehlermeldungen nicht angezeigt

also etwa so (trivial)

Code: Select all

if (@unlink("dfjjfjffjjfgfjgjjewljf.jpg")) {
  echo "Gelöscht";
} else {
  echo "Fehler!";
}
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Gedanklicher Ansatz zu Issue 87

Post by juergen »

und wenn du das gemacht hast musst du einmal alle files aus /content/images löschen,.... oder eben suchen welche dependencies es gibt (verkleinert, vergößert etc.)
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Gedanklicher Ansatz zu Issue 87

Post by Uwe367 »

Hi Jürgen,

Danke erstmal für deine Hinweise und scheinbar scheint das ganze doch etwas umfassender zu sein als ich annahm, aber ich habs mir in den Kopf gesetzt. Vielleicht bringen wir das Ding ja mit vereinten Kräften zum laufen :wink:
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Gedanklicher Ansatz zu Issue 87

Post by juergen »

Ah was

wir publizieren so grottenschlechten und unsicheren Code bis der Chef uns das wegnimmt :mrgreen: Mir schwebt da schon was vor, so wie DB Zugang im Seitenquelltext :lol:
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Gedanklicher Ansatz zu Issue 87

Post by Uwe367 »

Najaaaa...so krass muß es ja dann doch nicht sein :lol: .... aber ich glaube wenn der Chef liest was ich da zusammengeschrieben hab flieg ich ausm Forum und bekomme lebenslang phpwcms Verbot :lol:
User avatar
juergen
Moderator
Posts: 4556
Joined: Mon 10. Jan 2005, 18:10
Location: Weinheim
Contact:

Re: Gedanklicher Ansatz zu Issue 87

Post by juergen »

Wäre ja schlimm wenn man den Humor verliert. ;)

Wenn ihm niemand den Link zu diesem Thread schickt wird es wohl nicht lesen ....
User avatar
Uwe367
Posts: 1206
Joined: Sat 15. Sep 2007, 07:19
Location: Koblenz

Re: Gedanklicher Ansatz zu Issue 87

Post by Uwe367 »

Ne.. den Humor verliere ich keinesfalls, aber ich glaube daß ich mir selbst mit dieser Aufgabe als Anfänger etwas viel zugemutet habe.
Ich werde das hier erstmal auf Eis legen und mich mit dem grundsätzlichen befassen wie z.B. Datenbank auselsen, in Datenbank schreiben, Datenbankabfragen in Variablen bzw. Arrays speichern usw.
Erst wenn ich das richtig verstehe kann ich nen Schritt weter gehen, alles andere wäre das Pferd von hinten aufzäumen.
Trotzdem Danke :wink:
Post Reply