adminbereich zum bilder löschen

Cyber-GFX

Mitglied
Hallo, ich wollte für meinen Upload Script einen kleinen Adminbereich einrichten.

dort soll das Thumbnail sein, daneben sollte das Löschlink sein.

wie kann man das machen? mfg
 
Wenn du so fragst, wirst du wohl nicht genug Ahnung von PHP haben um das umzusetzen. Weil eigentlich hast du ja schon alles gesagt: Du brauchst zwei Dateien. Auf der ersten listest du alle Bilder auf mit einem Link zu Seite zwei. Seite zwei übermittelst du über $_GET den Namen des Bildes und Seite zwei löscht das Bild dann.

Funktionen die du brauchst sind:
http://at.php.net/opendir
http://at.php.net/scandir
http://at.php.net/closedir
http://at.php.net/unlink
und halt foreach.

mfg
nosilume
 
Natürlich musst du ein Script erstellen der nicht alle in den Admin Bereich annimmt, denk mal nach einer hat durch zufall den adminloginpfad gefunden, dann könnte er ja alles löschen.
Aber da du (wie nosilume schon sagte) die Erfahrung nicht hast wird das wohl schwer für dich sein... Lernen schadet nicht -> http://schattenbaum.net/php

MfG
KD3
 
Hi, Danke für die Links! Wäre es sehr Aufändig das für mich zu Schreiben?

Hab mir überlegt den Adminbereich mit einer .htaccess Datei zu Schützen
 
Die Arbeit mit den ersten 3 von nosilume verlinkten Funktionen kann Dir meine DirectoryList-Klasse abnehmen.
Dennoch empfehle ich Dir Dich mal mit den genannten Funktionen zu beschaeftigen, denn auch wenn es mit der Klasse einfacher geht solltest Du wissen wie es ohne gemacht wird.
 
Nunja, weiß auch nicht was ich jetzt machen muss, gibs da kein Tutorial dafür, oder keiner der es machen würde?

mfg
 
Hi, Danke, nur kommen diese Fehler:

in der delete-list.php

PHP:
Warning: opendir(http://cyber-gfx.de/upload2/files): failed to open dir: not implemented in /srv/www/web4/html/upload2/delete_list.php on line 4

Warning: readdir(): supplied argument is not a valid Directory resource in /srv/www/web4/html/upload2/delete_list.php on line 6

Warning: closedir(): supplied argument is not a valid Directory resource in /srv/www/web4/html/upload2/delete_list.php on line 20

und in der delete-img.php

PHP:
Warning: unlink(): Unable to access in /srv/www/web4/html/upload2/delete_img.php on line 12

Datei erfolgreich gelöscht !

delete-list.php
PHP:
<?php
require_once 'delete_config.php';

$dir = opendir(PATH_TO_DIR);

while (($file = readdir($dir)) !== false) {
	if ($file == '.' || $file == '..') {
		continue;
	}
	
	$uploadedfile = explode('.', $file);
	$extension =$uploadedfile[count($uploadedfile) - 1];
	if (!in_array($extension, $extensions)) {
		continue;
	}

	echo '<img src="' . PATH_TO_DIR . '/' . $file . '" /> <a href="delete_img.php?file=' . $file .'">Bild Löschen</a><br/>';
}

closedir($dir);
?>

delete img.php
PHP:
<?php
require_once 'delete_config.php';

$allowed_path = realpath(PATH_TO_DIR);
$absolute_path_thumbs = realpath($_GET['file']);

if(dirname($absolute_path_thumbs) != $allowed_path) {
	echo 'Du kannst keine Dateien außerhalb des Verzeichnisses löschen !';
	exit;
}

unlink($_GET['file']);

echo '<br/>Datei erfolgreich gelöscht !';
?>
 
Du hast offensichtlich keinen gültigen Pfad zum Vereichnis angegeben, beziehungsweise über HTTP. Viele Server unterstützen das nicht. Die Lösung ist einen absoluten oder relativen Pfad zum Verzeichnis anzulegen.

Übrigens habe ich bei unlink einen Fehler gehabt (sorry, bei meinem Test war alles OK), ersetze bitte
PHP:
unlink($_GET['file']);
durch
PHP:
unlink(PATH_TO_DIR . $_GET['file']) OR die('Datei konnte nicht gelöscht werden.');

Solltest du noch Fragen haben, oder der Code wider Erwarten nicht funktionieren helfe ich dir natürlich gerne weiter.

mfg
nosilume

Edit: Um zu überprüfen ob die Datei auch existiert kannst du vor dem Teil mit unlink noch das hier einfügen:
PHP:
if(!is_file(PATH_TO_DIR . $_GET['file'])) {
echo 'Die Datei wurde nicht gefunden.';
exit;
}
 
Zuletzt bearbeitet:
der pfad stimmt...
PHP:
<?php
define('PATH_TO_DIR', 'http://cyber-gfx.de/upload2/files');
$extensions = array('gif', 'png', 'jpg');
?>
 
Zurück