• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

löschfunktion

sumatra70

New member
Hallo, ich komme bei meinem Problem einfach nicht mehr weiter und brauche mal eure hilfe. In meinem selbst erstelltem CMS Adminmenü bekomme ich bei dem Menü, wo ich die Bilder sehen kann die Upgeloadet wurden, keine Löschfunktion hin. In einem kleinen Fenster werden alle Uploadbilder aneinandergereiht. Neben jedem Bild steht ein kleines rotes "x", welches für die löschfunktion steht. Ich habe schon sämtliche Varriationen ausprobiert.

PHP:
<?php
$Pfad="ordner/upload";
$verz=opendir($Pfad);
if($verz){
while($datei=readdir($verz)){
if($datei!="." && $datei!=".."){echo"
<a href=\"ordner/upload/$datei\" target=\"_blank\">
 <img src=\"ordner/upload/$datei\" /></a>
<a href=\"?menue=loeschen\" style=\"color:red;\">x</a>";}}
?>

Wie baut man dort nun eine Löschfunktion ein, die auch nur dieses Bild löscht, welches kleine x gerade geklickt wurde, ein?
Ich hoffe, ihr könnt mir weiterhelfenhelfen.
 
Du mußt deinem Löschlink irgendeine ID mitgeben, anhand der du dann die Datei, die gelöscht werden soll, identifizieren kannst. Dateiname würde sich dafür anbieten.

PHP:
echo '<a href="?menu=löschen&datei='.urlencode($datei).'>x</a>

PHP:
unlink("ordner/upload/".$_GET['datei']);

Vorher solltest du aber überprüfen das in $_GET['datei'] kein Verzeichniswechsel (keine '/') statt gefunden hat. Sonst kann man dadurch beliebige Dateien löschen.
 
Danke für dein Beispiel. Leider hatte ich erst jetzt die Zeit dies auszuprobieren. Ich habe dein Beispiel übernommen und da kommt folgende Fehlermeldung:
PHP:
Warning: unlink(ordner/upload/) [function.unlink]: Is a directory in /users/sumatrahome/www/ordner/ordner/delete.php on line 9
Hat das was mit der von dir benannten ID was zu tun?
Zumal auch bei deinem Beispiel dieser Zeile:
<a href="?menu=loeschen&datei='.urlencode($datei).>
beim klicken genau so wie es hier steht in der Adresszeile übernommen wird. Das kann ja auch nicht so korrekt sein. So gut bin ich ja leider in PHP auch noch nicht. Aber ich lerne ja noch dazu.;) Ich hoffe, du könntest mir da noch ein mal behilflich sein.
Hier ist jetzt das aktuelle Script:
PHP:
<?php
$Pfad="mh/upload";
$verz=opendir($Pfad);
if($verz){
while($datei=readdir($verz)){
if($datei!="." && $datei!=".."){echo"
<a href=\"ordner/upload/$datei\" target=\"_blank\"><img src=\"mh/upload/$datei\" /></a>
<a href=\"?menue=upload&datei='.urlencode($datei).\" style=\"color:red;\">x</a>";}}
unlink("ordner/upload/".$_GET['datei']);}
?>
 
Das kann ja auch nicht so korrekt sein. So gut bin ich ja leider in PHP auch noch nicht. Aber ich lerne ja noch dazu.;) Ich hoffe, du könntest mir da noch ein mal behilflich sein.
Hier ist jetzt das aktuelle Script:
PHP:
<?php
$Pfad="mh/upload";
$verz=opendir($Pfad);
if($verz){
while($datei=readdir($verz)){
if($datei!="." && $datei!=".."){echo"
<a href=\"ordner/upload/$datei\" target=\"_blank\"><img src=\"mh/upload/$datei\" /></a>
<a href=\"?menue=upload&datei='.urlencode($datei).\" style=\"color:red;\">x</a>";}}
unlink("ordner/upload/".$_GET['datei']);}
?>
Das Erzeugen des Links, das Klicken auf den Link und das Löschen sind drei verschiedene Vorgänge, die zu völlig unterschiedlichen Zeitpunkten ausgeführt werden. Du hast eins und drei zusammengefasst, das kann ja wohl rein logisch schon nicht funktionieren.
 
zu dem hast du meinen Code auch noch fehlerhaft kopiert.
PHP:
echo "<a href=\"ordner/upload/$datei\" target=\"_blank\"><img src=\"mh/upload/$datei\" /></a>
<a href=\"?menue=upload&datei2delete=".urlencode($datei)."\" style=\"color:red;\">x</a>";}}

und außerhalb der schleife
PHP:
if(!empty($_GET['datei2delete']))
{
   // überprüfung ob diese datei gelöscht werden darf
   unlink('unlink/'.$_GET['datei2delete']));
}
 
Abertausend Dank für die Hilfe. Es klappt jetzt entlich mal. Du glaubst gar nicht, wie lange ich daran schon gebastelt habe.

:)Frohe Weihnachtstage und einen guten Rutsch ins neue Jahr.:)



An die Admins: Der WYSIWYG-Editor ist bei der Schriftfarbauswahl fehlerhaft.
 
Zurück
Oben