christian: exec funktion mit "rm"

hi

folgendes geht nicht:

exec ("rm bilder/$bname");

obwohl es ein unix host ist, kommt eine fehlermeldung konnte nicht gelöscht werden. Das bild in der Variable existiert auf jeden fall schon eingehend kontrolliert.

Sonst noch ideen warum es nicht geht?

bye

  1. Hi Christian

    exec ("rm bilder/$bname");

    obwohl es ein unix host ist, kommt eine fehlermeldung konnte nicht gelöscht werden. Das bild in der Variable existiert auf jeden fall schon eingehend kontrolliert.

    Wie ist die genaue Fehlermeldung.

    • permission denied
    • does not exist ?

    Mach mal cut n paste der Fehlermeldung.
    Es könnte die verschiedenstens Ursachen haben

    Gruß
    Mike

    1. hi

      das würd ich gern aber es kommt kein fehler, es wird einfach nicht gelöscht.

      Nur wenn ich sage
      if(!exec ("rm bilder/$bname"))
      {
         print "fehler";
      }

      dann gibt er fehler.

      bye

      1. Hi Christian,

        das würd ich gern aber es kommt kein fehler, es wird einfach nicht gelöscht.

        dann must Du wohl verschieden Sachen testen. Welche Rechte
        hat die Datei 777 oder 666

        In welchem Pfad befindest Du dich ?
        Versuche es zunächst mal mit dem absoluten Pfad.

        Taste Dich so mal langsam vor.

        Gruß
        Mike

      2. Moin,

        Eine dumme Frage zum Anfang: Gibt es einen bestimmten Grund warum du nicht http://www.php.net/manual/de/function.unlink.php verwendest, oder reizt dich einfach nur der Nervenkitzel des Gefährlichen? (Wenn der Parameter von exec() mit Usereingaben gefüttert wird, und man sich dabei dumm anstellt, kann es leicht passieren, dass ein User beliebige Kommandos ausführen kann.)

        if(!exec ("rm bilder/$bname"))
        { print "fehler"; }
        dann gibt er fehler.

        Und das ist auch gut so. exec() gibt, wie in diesem Thread bereits erwähnt, die letzte Zeile des Programm-Outputs zurück. rm gibt keinen Output zurück, wenn alles glatt läuft, und !"" ist nunmal eine wahre Aussage.

        --
        Henryk Plötz
        Grüße aus Berlin

  2. rehi,

    folgendes geht nicht:
    exec ("rm bilder/$bname");

    im Handbuch steht zu "exec":
    "exec() führt ein gegebenen Befehl aus, ohne eine Ausgabe zu erzeugen. Die Funktion gibt lediglich die letzte Zeile aus dem Befehlsergebnis zurück."

    obwohl es ein unix host ist, kommt eine fehlermeldung konnte nicht gelöscht werden.

    Möglicherweise ist die Datei bereits gelöscht, ohne daß du es mitbekommen hast. Du solltest das mit einem FTP-Programm überprüfen. Die Fehlermeldung kommt mit diesem Wortlaut, wenn die zu löschende Datei nicht existiert oder mit anderem Namen existiert

    Grüße aus Berlin

    Christoph S.

    1. hi

      die datei ist 100 prozentig noch da

      bye

      1. hallo,

        die datei ist 100 prozentig noch da

        dann kann es noch an den Rechten liegen. Es kann sein, daß dein Script andere Berechtigungen hat (bzw. einer anderen Gruppe angehört) als dein FTP-Account

        Christoph S.