Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] fwrite gibt immer false zurück

Einklappen

Neue Werbung 2019

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

  • [Erledigt] fwrite gibt immer false zurück

    Hallo,
    ich habe vor ein paar Tagen mit PHP angefangen. Bin deshalb gerade dabei ein kleines cms zu schreiben. Was mein problem ist: Ich will das bearbeiten von Seiten möglich machen, also zuerst Einlesen in Textarea per file_get_contents(). Das funktioniert ganz gut. Was aber nicht funktioniert, ist das speichern per fwrite(). Bin mir relativ sicher, dass ich keinen Fehler gemacht habe. Es gibt keine Notice/Errormeldung, Verzeichnisrechte standen testweise auch schon auf 777. Trotzdem kommt von fwrite nur false zurück. Habe extra das Beispielscript ausm PHP Manual in leicht abgeänderter Form genommen, trotzdem nichts. Hier der Code:
    save.php
    PHP-Code:
    <?php
    $texttosave
    =$_POST['textarea'];
    if (
    is_writable("$dir_pages"."$_GET[task]".'.html')) {
        if (!
    $handle fopen("$dir_pages"."$_GET[task]".'.html'"a")) {
             print 
    "Can not open "."$dir_pages"."$_GET[task]".'.html';
             exit;
        }
        if (!
    fwrite($handle$texttosave"x")) {
            print 
    "Can not write to "."$dir_pages"."$_GET[task]".'.html';
            exit;
        }
        print 
    "Successfully saved";
        
    fclose($handle);
    } else {
        print 
    "$dir_pages"."$_GET[task]".'.html'." is not writeable";
    }
    ?>
    "$dir_pages"."$_GET[task]".'.html' ist der Pfad in der die Datei geschrieben werden soll.

    Danke schonmal.


  • #2
    Wieso steht ein "x" als 3. Parameter?
    "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

    Kommentar


    • #3
      "$dir_pages"."$_GET[task]".'.html'
      Code Smells

      Überhaupt täte es dem Code gut, diesen Pfad einmalig in eine Variable zu schreiben und fortan diese zu benutzen.
      --

      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


      --

      Kommentar


      • #4
        @Destruction
        Ok das war ja mal wieder klar dass ein einziger Buchstabe schuld ist. Habe das neulich gelesen dass "x" für neu anlegen steht. Hatte es allerdings auch mal mit anderen Optionen probiert und das x deshalb ausgeschlossen. Jetzt funktioniert das ganze super, danke.
        @nikosch
        Danke für den Link, werde ich mal durchgehen. Und ja Variable ist logisch, habe das nur vor kurzem umgeändert, davor stand da eine, da hatte ich den Code aber für jede Seite extra. Hab das dann nur per Alles Ersetzen drübergezogen.

        Jetzt stellt sich nur noch die Frage, gibt es eine fwrite option zum Ersetzen? Oder muss ich die Datei vorher per unlink löschen?

        Kommentar


        • #5
          Jetzt stellt sich nur noch die Frage, gibt es eine fwrite option zum Ersetzen? Oder muss ich die Datei vorher per unlink löschen?
          Steht im Manual. Normales Dateischreiben überschreibt alles.
          --

          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


          --

          Kommentar


          • #6
            if (!$handle = fopen("$dir_pages"."$_GET[task]".'.html', "w"))
            "Dummheit redet viel..Klugheit denkt und schweigt.." [Amgervinus]

            Kommentar


            • #7
              if (!$handle = fopen("$dir_pages"."$_GET[task]".'.html', "w")) funktioniert, vielen Dank, dann kann ich jetzt endlich mit dem Rest weitermachen.

              Kommentar

              Lädt...
              X