HeSch: txt-Datei in Textfeld ändern

Ich habe vor, mit einem PHP-Script eine txt-Datei zu ändern. Diese txt-Datei ist in eine Website eingebunden und soll immer die aktuellen News beinhalten. Zur einfachen Aktualisierung will ich nun diese Datei in einem Textfeld ändern können.

Die txt-Datei heisst "aktuell.txt".

Das derzeitige php-Script sieht so aus:

<form action="<?php echo $PHP_SELF ?>" method="post">
      <textarea cols=80 rows=5 name="note" wrap=virtual>
<?php include("aktuell.txt") ?>
      </textarea><br><br>
      <input type="submit" value="Abschicken">
</form>
<?php
if ($submit == "Abschicken")
    {
    $fp = fopen("aktuell.txt","w");
    $data ="$note";
    $data = str_replace("\r","",$data);
    fputs($fp,$data);
    fclose($fp);
    }
?>

Leider funktioniert es nicht so wie es soll. Nachdem ich den Text im textfeld geändert hab und auf Abschicken drücke, steht wieder der vorherige Text im Textfeld. Wo liegt der Fehler?

  1. hi,

    Leider funktioniert es nicht so wie es soll. Nachdem ich den Text im textfeld geändert hab und auf Abschicken drücke, steht wieder der vorherige Text im Textfeld. Wo liegt der Fehler?

    du gibst in deinem script zuerst das formular aus, und liest die textdatei dort mit
    <?php include("aktuell.txt") ?>
    ein (btw: readfile() hielte ich für angebrachter).

    zu dem zeitpunkt hast du aber noch gar nicht den neuen inhalt in die datei geschrieben, das kommt erst weiter unten in deinem script (*) - also bekommst du wieder den alten inhalt angezeigt.

    (*) sofern der zugriff auf den wert des submit-buttons mit dieser veralteten zugriffweise überhaupt funktioniert.

    gruss,
    wahsaga

    1. »» (*) sofern der zugriff auf den wert des submit-buttons mit dieser veralteten zugriffweise überhaupt funktioniert.

      hab mir schon gedacht, dass das wahrscheinlich nicht so funktionieren kann wie ich mir das vorgestellt habe, aber was meinst du mit veralteter Zugriffsweise?

      1. hi,

        hab mir schon gedacht, dass das wahrscheinlich nicht so funktionieren kann wie ich mir das vorgestellt habe, aber was meinst du mit veralteter Zugriffsweise?

        du gehst davon aus, dass du den wert des mit "submit" benannten buttons in $submit zur verfügung gestellt bekommst.

        ist auch richtig für ältere PHP-versionen, aber in neueren solltest du dafür, je nach übertragungsmethode $_GET['submit'] bzw. $_POST['submit'] verwenden, und für alle anderen formularfelder ebenso.

        siehe auch http://www.php.net/manual/de/language.variables.predefined.php bzw. http://www.php.net/manual/en/language.variables.predefined.php.

        wenn es bei dir trotzdem noch funktioniert - nicht ausgeschlossen - steht bei dir die option register_globals auf on. das ist aber nicht empfehlenswert, da es ein sicherheitsrisiko darstellen _kann_.

        gruss,
        wahsaga

        1. wenn es bei dir trotzdem noch funktioniert - nicht ausgeschlossen - steht bei dir die option register_globals auf on. das ist aber nicht empfehlenswert, da es ein sicherheitsrisiko darstellen _kann_.

          Hast recht, register_globals stehen bei mir auf on, ist aber nicht mein eigener Server, von daher kann ich da nichts dran ändern.

          Mein Script bekomm ich trotzdem nicht zum laufen. Und blöderweise find ich auch keine ähnlichen Scripts im www zum runterladen. Ist denn meine Idee zur einfachen Website-Aktualisierung wirklich so weltfremd?

          1. hi,

            Mein Script bekomm ich trotzdem nicht zum laufen.

            warum, woran scheitert's?
            schon versucht, den update-teil vor das formular zu setzen?
            schon überprüft, ob nur die ausgabe noch die alten daten enthält, oder die textdatei an sich auch?

            Ist denn meine Idee zur einfachen Website-Aktualisierung wirklich so weltfremd?

            nein, eigentlich nicht.

            gruss,
            wahsaga

            1. schon versucht, den update-teil vor das formular zu setzen?

              Ja, mit dem gleichen Ergebnis

              schon überprüft, ob nur die ausgabe noch die alten daten enthält, oder die textdatei an sich auch?

              Hab ich auch schon überprüft, die txt-Datei ändert sich leider auch nicht.