Textdatei mit PHP bearbeiten

Hallo

Ich hoffe ihr könnt mir helfen…weil so langsam bekomme ich graue Haare.

Und zwar möchte ich per php eine Txt-Datei auf dem Server per Webbrowser editieren.

Das Script NAmens index.php lief auch früher mal,aber nun nicht mehr:

<?php $datei = "hinweis.txt"; // Name der datei
if($action == "change") { $fp = fopen("$datei", "w+"); fputs($fp, "$new\_datei"); fclose($fp); echo "Gespeichert"; } $fd = file($datei); $text=implode ("",$fd); ?\> echo $text ?\> Es erscheint auch der Dateininhalt aber beim Abschicken des Formulars wird nichts geändert / abgespeichert. Hoster ist Hosteurope mit php5 - vermute evtl das es daran liegt..früher war es bei 1&1 Fürn heissen Tip wäre ich seeehr dankbar..

php5 würde dir sagen ob was depreached ist.

Kann auch an den rechten liegen, das hinweis.txt brauch natürlich schreibrechte und wenn ftp user und webuser unterschiedlich sind dann muss man extra für OTHERS die schreibrechte einbauen.

Server Linux oder Windows wäre viel wichtiger zu wissen :smile:

Und zwar möchte ich per php eine Txt-Datei auf dem Server per
Webbrowser editieren.
Das Script NAmens index.php lief auch früher mal,aber nun
nicht mehr:

Vor 10 Jahren würde das Script laufen, da Du voraussetzt,
dass GLOBALS (http://php.net/manual/de/security.globals.php) aktiviert ist.
Aus Heutiger Sicht, ist das eine Einladung für Hacker.
Darum musst Du dein Script etwas umschreiben:

<?php $datei = "hinweis.txt"; // Name der datei
if(isset($\_POST['action']) and $\_POST['action'] == "change") { $fp = fopen($datei, "w+"); fputs($fp, $\_POST['new\_datei']); fclose($fp); echo "Gespeichert"; } $text = (file\_exists($datei)) ? file\_get\_contents($datei) : ""; echo ' '.htmlspecialchars($text).'

Moin,

Ich hoffe ihr könnt mir helfen…weil so langsam bekomme ich
graue Haare.

Kann ich mir gar nicht vorstellen. Die Ursache findet man doch sofort.
Du musst, wenn Du mit PHP arbeitest, lernen zu debuggen. D.h. Du musst den Ablauf Deines Scripts durchgehen und gucken, was PHP an der Stelle macht und ob Variablen den Wert haben, den Du erwartest.

if($action == „change“)

Gespeichert wird nur, wenn $action den Wert „change“ hat. Also lass Dir vor dem if ausgeben, ob das wirklich so ist. Da wirst Du feststellen, dass das nicht der Fall ist und schon hast Du den Grund dafür, dass nichts mehr gespeichert wird. Weil er nicht mehr in das if rein geht und daher auch nichts speichert.

Wenn Du dann die Antwort von meinem Vorredner gelesen hast, dann weißt Du, dass es an „Register Globals“ liegt, mehr dazu hier: http://php.net/manual/de/security.globals.php

if ($_POST[„action“] == „change“)

und schon funktionierts wieder.

Liebe Grüße,
-Efchen

P.S.: Während Dein PHP-Code 10 Jahre alt ist (wie mein Vorredner schrieb), ist Dein HTML-Code bald 20 Jahre alt. Willst Du mehr mit HTML machen und öffentliche Websites erstellen, solltest Du schonmal „HTML & CSS lernen“ auf Deine TODO-Liste stellen.