Dateien eines Ordners auflisten mit Button oder Link zum Löschen

Sun Rider

Mitglied
Hallo liebe Gemeinde,

sorry, wenn es schon ein entsprechendes Thema innerhald dieses Forums gibt. Hab schon gesucht, aber nix gefunden.

Also: ich habe mal irgendwo her ein Script bekommen, das mir die Dateien eines Ordners inkl. Link zu den einzelnen Datein ausgibt, was auch sehr gut funktioniert.
Jetzt wäre es wünschenswert, wenn hinter dem Link zu jeder Datei auch ein Button oder Link zum Löschen dieser Datei erscheint.

Habe schon viele viele PHP-Seiten durchforstet aber leider nix passendes gefunden.
Dazu kommt, daß ich mich mit PHP so gut wie nicht auskenne.
Ich poste hier mal den Codeschnipsel in der Hoffnung auf fachkundige Unterstützung und sage im Voraus schon mal Danke.

PHP:
<?php
$handle = opendir("**********");
$i=0; while($file = readdir($handle)) {
if(!preg_match("|^\.{1,2}$|",$file))  {
$array[$i]=$file;  $i++;  } }
//Hier jetz die Ausgabe selbst:
natsort($array); $array=array_reverse($array); reset($array);
for($i=0;$i<count($array);$i++)
$del_dat = .$array[$i].;
{
echo "<a href=\"**********/".$array[$i]."\" target=_blank><img src=images/PDFlogo.jpg height=30 width=30 align =center> ".$array[$i]."  </a><br /><br />\n";
}
closedir($handle);
?>
 
Hi,

meine Idee dazu ist, du fragst am Anfang deiner Seite ab, ob eine Get Variable gesetzt ist, wenn ja lösche den parameter (hier den link) vom server.

PHP:
<?php

if(isset($_GET["del"]) && !empty($_GET["del"]))
 unlink($_GET["del"]);

$handle = opendir("**********");
$i=0; while($file = readdir($handle)) {
if(!preg_match("|^\.{1,2}$|",$file))  {
$array[$i]=$file;  $i++;  } }
//Hier jetz die Ausgabe selbst:
natsort($array); $array=array_reverse($array); reset($array);
for($i=0;$i<count($array);$i++)
$del_dat = .$array[$i].;
{
echo "<a href=\"**********/".$array[$i]."\" target=_blank><img src=images/PDFlogo.jpg height=30 width=30 align =center> ".$array[$i]."  </a> 

<a href="DIESESEITE?del=$array[$i]">Löschen</a>

<br /><br />\n";
}
closedir($handle);
?>

Und Zwar, du übergibst den Link per Get Variable (del).
Wenn die Seite neu lädt, fragt er, ob die Get Variable (del) belegt und nicht leer ist.
Wenn beides zutrifft, dann löscht (unlink) er die Datei.

Teste mal. Hab grad keine möglichkeit dazu
 
Hallo Crsakawolf,

Leider klappt es nicht. Es kommt folgende Fehlermeldung:

Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in C:\xampp\htdocs\members\members-vs.php on line 116

wobei Line 116 im Schnipsel diejenige ist, die den Link zum Löschen enthält.

Ich weiß nicht warum, aber beim 1. Post des Codes hat er zwei Slash's unterschlagen.
Die Zeile "$del_dat = .$array[$i].;" war eigentlich auskommentiert, stammte noch aus früheren Versuchen. Anbei noch mal der jetzt auf deine Idee hin geänderte Schnipsel.


PHP:
<?php
 if(isset($_GET["del"]) && !empty($_GET["del"]))
 unlink($_GET["del"]);

 $handle = opendir("********");
 $i=0; while($file = readdir($handle)) {
 if(!preg_match("|^\.{1,2}$|",$file))  {
 $array[$i]=$file;  $i++;  } }
 //Hier jetz die Ausgabe selbst:
 natsort($array); $array=array_reverse($array); reset($array);
 for($i=0;$i<count($array);$i++)
 //$del_dat = .$array[$i].;
 {
echo "<a href=\"********/".$array[$i]."\" target=_blank><img src=images/PDFlogo.jpg height=30 width=30 align =center> ".$array[$i]."  </a> <a href="DIESESEITE?del=$array[$i]">Löschen</a><br /><br />\n";

}
closedir($handle);
 ?>

Hab schon an einigen Stellen mit ";" rumexperimentiert, hilft aber nix.
In meinem Editor zeigt er mir auch das "del" im Löschlink (<a href="DIESESEITE?del=$array[$i]">Löschen</a>) farblich als falsch an. Muß anstelle des ? evtl. ein $ da hin. Farbe stimmt dann, geht aber trotzdem nicht.

Hast Du da noch Ideen zu ?
 
Zuletzt bearbeitet:
Die Anführungszeichen im Anchor müssen noch escaped (schönes Denglisch ...) werden.
PHP:
echo "<a href=\"********/".$array[$i]."\" target=_blank><img src=images/PDFlogo.jpg height=30 width=30 align =center> ".$array[$i]."  </a> <a href=\"DIESESEITE?del=$array[$i]\">Löschen</a><br /><br />\n";
Außerdem solltest du für DIESESEITE entweder den Dateinamen des Scripts einsetzen oder
PHP:
$_SERVER['PHP_SELF']
 
Hallo Erik,

vielen Dank für die Nachricht.
habe alles entsprechend geändert, tut aber leider immer noch nicht.
Jetzt lautet die Fehlermeldung:

Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in C:\xampp\htdocs\members\members-vs.php on line 118

Wobei die Zeilennummer für den Schnipsel nicht stimmt, stammt aus der Gesamt-Datei.
 
Zuletzt bearbeitet:
Dann poste doch mal bitte, wie dein Code momentan aussieht und die Fehlerzeile aus members-vs.php.
 
Hallo Erik,

hier noch mal der Code:

PHP:
                                <?php

                                if(isset($_GET["del"]) && !empty($_GET["del"]))
                                unlink($_GET["del"]);

                                $handle = opendir("protokolle");
                                $i=0; while($file = readdir($handle)) {
                                if(!preg_match("|^\.{1,2}$|",$file))  {
                                $array[$i]=$file;  $i++;  } }
                                //Hier jetz die Ausgabe selbst:
                                natsort($array); $array=array_reverse($array); reset($array);
                                for($i=0; $i<count($array);$i++)

                                {

                                //die nächste ist die Fehlerzeile 118
                                echo "<a href=\"protokolle/".$array[$i]."\" target=_blank><img src=images/PDFlogo.jpg height=30 width=30 align =center> /".$array[$i]." </a> <a href=\"members-vs.php/" ?del=.$array[$i].">&nbsp;&nbsp;<img src=images/muelleimer.jpg height=20 width=22 align =center title=L&ouml;schen alt=L&ouml;schen></a><br /><br />\n";


                                
                                }
                                closedir($handle);
                                ?>

Hoffe ich hab nicht noch irgendwo vergessen, nen Slash für die " einzubauen.
Die Fehlerzeile hab ich gekennzeichnet, die Datei ist die members-vs.php. Hab keine andere.
Bis später und schon mal Danke
 
ersetz die Zeile 118 durch diese hier:
PHP:
echo "<a href='protokolle/".$array[$i]."' target='_blank'><img src='images/PDFlogo.jpg' height='30' width='30' align='center'>".$array[$i]."</a> <a href='members-vs.php?del=".$array[$i].">&nbsp;&nbsp;<img src='images/muelleimer.jpg' height='20' width='22' align='center' title='L&ouml;schen' alt='L&ouml;schen'></a><br /><br />";
 
Zuletzt bearbeitet:
Da ist immer noch ein Fehler in der letzten Zeichenkette: zwischen dem ausleitenden Anführungszeichen und dem Punkt-Konnektor steht noch ?del=. Das muss mit in die Zeichenkette rein, sonst denkt der Parser ja, er muss Frage- und Gleichheitszeichen interpretieren und del sei eine Konstante.
PHP:
echo "<a href=\"protokolle/" . $array[$i] . "\" target=\"_blank\">" .
     "<img src=\"http://www.tutorials.de/images/PDFlogo.jpg\" height=\"30\" width=\"30\"" .
     " align =\"center\"> /" .$array[$i] . "</a> " .
     "<a href=\"members-vs.php?del=".$array[$i]."\">&nbsp;&nbsp;" .
     "<img src=\"http://www.tutorials.de/images/muelleimer.jpg\" height=\"20\" width=\"22\" " .
     "align=\"center\" title=\"L&ouml;schen\" alt=\"L&ouml;schen\">" .
     "</a><br /><br />\n";

EDIT: Maniac war schneller ;)
 
Zuletzt bearbeitet:
Zurück