unlink mach schwierigkeiten

  • hallo zusammen,


    unlink macht bei mir grosse schwierigkeiten.

    folgender sachverhalt:


    es gibt eine vorschaugalerie, deren bilder durch

    klick auf die bildunterschrift in ein bestimmtes

    verzeichnis kopiert werrden.


    in der galerie von diesem verzeichnis möchte ich,

    dass bei einem klick auf die bbildunterschrift, das

    betreffende bild im verzeichnis gelöscht wird.


    es wird alles korrekt angezeigt,

    aber das löschen funktioniert nicht.


    wäre toll, wenn mir da jemand weiterhelfen würde.


    kurze beschreibug mit code:



    es wird alles korrekt angezeigt, gibt aber bei klick auf die bildunterschrift folgende meldung aus:


    http://localhost/_copyshop/Notice Undefined index: baseename in S:/xampp/htdocs/_copyshop/copyshop.php on line 96 EWarning unlink(): Invalid argument in S:/xampp/htdocs/_copyshop/copyshop.php


    resultat: zugriff verweigert.


    freu mich auf unterstützung

    :)

    menzel

  • on line 96

    Ich sehe hier nur 27 Zeilen. :(


    Und

    Code
    1. echo unlink ($bildiinifo['basename']);

    ist völliger Quatsch. Du hast Glück, dass $bildinfo falsch geschrieben ist, denn sonst hättest du dir schon die Dateien gelöscht. Du musst ein weiteres Script aufrufen, das die Datei löscht. In deinem Fall wurde echo nur den Rückgabewert von unlink ausgeben, und wenn die Datei existiert, wäre sie dann auch weg.


    Und warum du immer noch scandir benutzt, verstehe wer will. In einem anderen Thread habe ich dir ein Beispiel mit glob gezeigt, das ist wesentlich eleganter.

  • danke für die antwort. du hast sicher gemerkt, dass ich in sachen php nicht sehr sattelfest bin, also immer noch sehr viel trial an error.


    ich will das jetzt nicht komplett umschreiben, bin ja froh, dass ich das soweit habe.


    separate datei, meinst du etwas in der art:


    Code
    1. $filename = '$bildinfo['basename']';
    2. if (file_exists($filename)) {
    3. $success = unlink($filename);
    4. if (!$success) {
    5. throw new Exception("Cannot delete $filename");}
    6. }

    danke jedenfalls für die unterstützung


    :)


    menzel

  • also immer noch sehr viel trial an error.

    Ich spendiere mal noch ein "d" - Fehler verfolgen ist noch weniger sinnvoll als wild rumprobieren. Beschäftige dich erstmal mit den Grundlagen, alles andere führt zu nichts.

    separate datei, meinst du etwas in der art:

    Nein. Das was du da gepostet hast gibt nur einen Syntaxfehler. Mir ist auch nicht wirklich klar was du eigentlich vor hast, aber Löschaktionen sollten niemals per get-Request erfolgen sondern immer per post-Request - du brauchst also keine Link sondern ein Formular mit Button.

  • Vom Prinzip her richtig, aber wenn man das in einem Admin-Bereich macht, der abgesichert ist und man nur selber drauf Zugriff hat, sehe ich das nicht als Problem an

    … zumindest solange bis der Browser anfängt im Hintergrund die verlinkten Seiten vorzuladen und dabei fröhlich Daten löscht. Imho ist es sinnvoll sich anzugewöhnen solche Aktionen *immer* per POST zu machen, auch in einem Adminbereich den man nur selbst benutzt - auch das kann sich ja ändern.