Bild löschen klappt nicht

lordofscotland

Erfahrenes Mitglied
Hallo Community,

ich hab hier vor langer Zeit ein Script gefunden womit man den Ordnerinhalt, spricht Bilder anzeigen lassen kann.
Nun möchte ich in diese Script noch eine Löschfunktion einbauen.
Das ganze wollte ich in etwa so realisieren:
PHP:
if ($id == "kill")
{
unlink("$val");
}
else
{
$dir = "../bilder/klein/";
$dir .= $_GET['album'];
$dir .= "/";
$files = array();
$verz = opendir($dir);
while($file = readdir($verz))
    {
    if($file != "." && $file != ".." && $file != $PHP_SELF)
        {
        $files[filemtime($dir.$file)] = $file;
        }
    }
ksort($files); //HIER WIRD SORTIERT
foreach($files as $val)
    {
    echo '<td class="bild">';
    echo '<img src="'.$dir.''.$val.'"><p></p>';
    echo '<a class="nav" href="bilder.php?bild=$val&id=kill">Bild l&ouml;schen</a>';
    echo '</td>';
    $spalte++;
    if($spalte >= 3){
    echo '</tr><tr><td colspan="3"></td></tr><tr>';
    $spalte = 0;
  }
 }
}

Mein Problem an der Sache ist das der Link nur die ID kill zeigt aber nicht den Namen des Bildes, somit kann der Unlink-Befehl nicht ausgeführt werden.

Wo liegt mein Denk- oder Programmierfehler.

Danke im Vorraus

Lordofscotland
 
Das Script sieht doch so schon mal nicht schlecht aus, das Problem, das ich sehe ist, dass der unlink-Befehl zwar den Bildnamen übergeben bekommt, aber das Script ja nicht im gleichen Ordner liegt, wie das Bild.
Du müsstest dann beim unlink-Befehl auch noch mal den gesamten Pfad angeben. As natürlich mit dem Albumnamen:
PHP:
unlink("../bilder/klein/$album/$val");
Damit der Albumname dann Verfügbar ist, musst du den noch mit übergeben:
PHP:
echo '<a class="nav" href="bilder.php?album=$_GET["album"]&bild=$val&id=kill">Bild l&ouml;schen</a>';
 
Zuletzt bearbeitet:
Danke für die Idee, ganz so wollte die zwar nicht klappen hab dadurch etwas andere probiert

PHP:
print"<a class='nav' href='bilder.php?bild=$val&id=kill'>Bild l&ouml;schen</a>";

und siehe da es klappt, und damit der pfad stimmt hab ich deine Angaben übernommen.
 
Zurück