dantaros
Goto Top

PHP - Datei per Unlink löschen

Hallo zusammen,

ich habe aktuell ein Problem mit dem Befehlt "unlink".

Ich habe ein Uploadformular erstellt und die Bilder werden anschließend auch angezeigt.
Der Pfad wird in einer Datenbank gespeichert.

Jetzt gibt es die Möglichkeit über "Löschen" den Eintrag zu entfernen.
In der Datenbank wird der Pfad richtig gelöscht, die Datei liegt allerdings weiterhin auf dem Server.
Wenn ich den Pfad hart in den Code schreibe funktioniert es, wenn ich es über eine Variable versuche nicht.

Mein aktueller Versuch ist es die die Variable "anhang" wie die "id" mitzugeben und über get zu verwenden.
Die Werte werden auch richtig übergeben, aber leider wird die Datei nicht gelöscht.

Anbei mein Code.

<a href="?aktion=loeschen&id=<?php echo $inhalt->id; ?>&anhang=<?php echo $inhalt->anhang; ?>">Löschen</a>  
if (isset($_GET['aktion']) and $_GET['aktion']=='loeschen') {  
    if (isset($_GET['id'])) {  
        $id = (INT) $_GET['id'];  
        $anhang = (INT) $_GET['anhang'];  
        if ($id > 0)
        {	
	    unlink ($anhang);
            $loeschen = $db->prepare("DELETE FROM heute WHERE id=(?) LIMIT 1");  
            $loeschen->bind_param('i', $id);  
            if ($loeschen->execute()) {
            }
        }       
    }
}

Ich hoffe ihr könnt mir weiterhelfen.

Mit freundlichen Grüßen
Dantaros

Content-Key: 562349

Url: https://administrator.de/contentid/562349

Printed on: April 19, 2024 at 23:04 o'clock

Member: NordicMike
Solution NordicMike Apr 01, 2020 at 11:38:07 (UTC)
Goto Top
Befindet sich die Datei im gleichen Ordner? Oder in welchem Format steht der Pfad in der Datenbank? Mach mal ein echo $anhang, damit Du auf der Ausgabe siehst wie die Variable übertragen wird.
Member: Dantaros
Dantaros Apr 03, 2020 at 07:15:16 (UTC)
Goto Top
Entschuldige die späte Antwort, aufgrund der aktuellen Situation kann ich nicht jeden Tag dran arbeiten.

Die Uploads liegen bei mir in einem Ordner "Uploads", der Ordner liegt im selben Ordner wie die PHP-Datei.

Die Variable ist das Problem.
Hab das echo gemacht, in der Variable steht nur eine 0.
Member: Dantaros
Dantaros Apr 03, 2020 at 07:18:42 (UTC)
Goto Top
Ich habe den Fehler jetzt aber dadurch gefunden.

Ist ein kleiner blöder Fehler.

Der Pfad wird bei mir in der Datenbank als String und nicht INT gespeichert.
Daher muss ich logischerweise
$anhang = (String) $_GET['anhang'];  
und nicht
$anhang = (INT) $_GET['anhang'];  
verwenden.

Danke für den Denkanstoß.