Ankündigung

Einklappen
Keine Ankündigung bisher.

Bild Datei aus einem Ordner löschen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Rusko
    hat ein Thema erstellt Bild Datei aus einem Ordner löschen.

    Bild Datei aus einem Ordner löschen

    Hallo liebe Community.

    Da ich ein ziemlicher Anfänger bin und ich erst seid wenigen Tagen angefangen habe mit PHP zu arbeiten, hoffe ich nun bei euch Rat zu bekommen

    Ich habe eine Bildergalerie erstellt, in der man Bilder hochladen kann. Diese werden im Ordner /bilder/images/ gespeichert.

    Nun habe ich überhaupt keine Ahnung, wie ich diese aus diesem Ordner löschen kann. Es sollte so ähnlich wie beim hochladen funktionieren, d.h. die Datei auswählen und anschließend auf einen Button klicken, sodass die Datei aus diesem Ordner gelöscht wird

    PHP-Code:
    <?php

    require 'bilder/Gallery.php';


    $gallery = new Gallery();
    $gallery->setPath('bilder/images');

    $images $gallery->getImages(array('jpg''png'));


    if (
    count($_POST) > 0) {
        
    $name $_POST['name'];
        
    move_uploaded_file($_FILES['datei'] ['tmp_name'], "bilder/images/$name");
    }


    #var_dump($_POST);
    ?><!DOCTYPE html>
    <html>
        <head>
            <title>Bildergalerie</title>
            <link rel="stylesheet" href="css/gallery.css">
        </head>
        <body style="background-color: #AAAAAA">
            <font color='#C00000'><h1>Bildergalerie</h1></font>
                

            <FORM method="post" enctype="multipart/form-data" >
                <input type="file" name="datei" value="Durchsuchen"> <br>
                <input type="text" name="name" value="DateiName.jpg"> <br>
                <input type="submit" value="Hochladen">
                <br>
            </FORM>
            
            <a href="index.php">
        <button>Aktualisieren!</button>
    </a>
            <br>
            <br>
            <br>
           
         <FORM method="post" action="" enctype="multipart/form-data" >
                <input type="file" name="datei" value="Durchsuchen"> <br>
                <input type="hidden" name="loeschen" value="1"> <br>
                <input type="submit" value="Entfernen">
            </FORM>   

            <div class="container">
                <?php if ($images): ?>    
                    <div class="gallery cf">
        <?php foreach ($images as $image): ?>
                            <div class="gallery-item">
                                <a href="<?php echo $image['full']; ?>"> <img src="<?php echo $image['full']; ?>"></a>
                            </div>
                        <?php endforeach; ?>
                    </div>
    <?php else: ?>
                    There are no images.
                    <?php endif; ?>
            </div>
        </body>
    </html>

  • Gast-Avatar
    Ein Gast antwortete
    Zitat von tkausl Beitrag anzeigen
    Was du tun musst:
    - Die art der hochgeladenen Datei prüfen (MimeType, ...)
    Gerade die Überprüfung des MimeType kann man sich wirklich schenken.

    Zitat von tkausl Beitrag anzeigen
    - Den eingegebenen Dateinamen validieren
    Für das Abspeichern der Datei mittels move_uploaded_file() am besten eigene Dateinamen vergeben. Dazu eignet sich zum Beispiel ein UUID.

    Der mit übermittelte Dateiname kann zusätzlich - nach einer Säuberung - abgespeichert werden.

    Einen Kommentar schreiben:


  • SylarBo
    antwortet
    Ich bin selber noch ein PHP-Neuling, aber ich denke worauf hier zum Teil hingewiesen wird ist, dass du beim Upload nicht prüfst, ob es wirklich ein Bild ist. Hier könnte eine .php Datei ins Bilderverzeichnis hochgeladen werden?

    Oder liege ich da falsch? ... Wie gesagt, ich bin ein PHP-Neuling

    Gruß

    Edit: Tja, ein bisschen zu langsam... aber ich weiß nun, dass ich mit meiner Vermutung recht hatte

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Was du tun musst:
    - Die art der hochgeladenen Datei prüfen (MimeType, ...)
    - Den eingegebenen Dateinamen validieren
    - Beim löschen den GET-Parameter validieren

    Einen Kommentar schreiben:


  • Rusko
    antwortet
    Ich bin dabei das ganze nun bisschen sicherer zu machen (zu mindestens beim löschen und später auch beim uploaden), nur habe ich Probleme in der Umsetzung, da ich nicht die benötigten Kenntnisse habe.

    Ich weiß auch, dass es egoistisch klingt von anderen Programmierern Codes zu erwarten, aber dies ist nun mal ein wichtiges Projekt für mich und wäre dir deshalb sehr dankbar!

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Wozu? Wenn du nicht selbst den GET-Parameter manipulierst kann nichts passieren. Außerdem schafft der Upload Lücken die noch viel gröberer sind (Ein Angreifer könnte eigenen PHP-Code auf deinem Server ausführen).

    Einen Kommentar schreiben:


  • Rusko
    antwortet
    Hättest du auch eventuell eine sicherere Codierung die nicht meine ganze .php Datei löschen könnte.
    Zum Glück hatte ich eine Sicherheitskopie

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Dann hast du die Seite doppelt mit dem gleichen GET-Parameter aufgerufen.

    Einen Kommentar schreiben:


  • Rusko
    antwortet
    Allerdings kommt jetzt eine Fehlermeldung, obwhol alles einwandfrei klappt

    Warning: unlink(bilder/images/test10.jpg): No such file or directory in C:\www\index.php on line 5

    Einen Kommentar schreiben:


  • Rusko
    antwortet
    Ich danke dir sooo unglaublich sehr !!

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Pack das mit in die Schleife die alle Bilder durchgeht:
    PHP-Code:
    <a href="?delete=<?php echo $image['full']; ?>">Delete</a>
    Und das an den Anfang des Scripts:
    PHP-Code:
    if(isset($_GET['delete'])) unlink($_GET['delete']); 
    Ich möchte noch kurz anmerken, dass dein Upload Sicherheitslücken enthällt und mein Codeschnipsel genauso, dieses Script darf so wie es ist niemals Online gehen!

    Einen Kommentar schreiben:


  • Rusko
    antwortet
    Die Seite soll auch noch gar nicht online kommen

    Aber das ich Dateien mit unlink(); löschen kann, weiß ich auch.

    Ähnlich wie beim Hochladen, soll es auch beim Löschen aussehen:

    PHP-Code:
    <FORM method="post" action="" enctype="multipart/form-data" >
                <
    input type="file" name="datei" value="Durchsuchen"> <br>
                <
    input type="hidden" name="loeschen" value="1"> <br>
                <
    input type="submit" value="Entfernen">
            </
    FORM
    Nur wie sehen jetzt die nächsten Schritte aus ..

    Wie gesagt. Ich beschäftige mich nun seid 3 Tagen mit PHP und hab demnach wenig/gar keine Erfahrung.
    Über einen Hilfescript würde ich mich demnach seeeehr freuen

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Ziemlich dicke Sicherheitslücke hast du da eingebaut.

    Dateien löschen kannst du mit unlink();

    Einen Kommentar schreiben:

Lädt...
X