Phil: Problem mit Post-Übergabe & fwrite

Hallo Zusammen,

Schlage mich seit Stunden mit einem blöden Problem rum, komme einfach nicht dahinter.

In ein Textarea wird eine TXT Datei eingelesen. ( Variable $inhalt ) Mittels Submit wird das ganze als Variable "news" an die Datei socket.php übergeben.

Eingabe.php

<form action="socket.php" method="post"><textarea name="news" cols="70" rows="15">$inhalt</textarea><br><br><input type="submit" value="Update"></form>"

socket.php

$text = $_POST['news'];
$inhalt = stripslashes ($news); // Entfernt "/"
$datei = "news.txt";
$fp= fopen($datei , "w");
fwrite($datei , $inhalt);
fclose ($fp);

Leider erscheint bei diesem Ablauf immer diese Fehlermeldung:
Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web0/html/admin/socket.php on line 11

Alle Rechte habe ich korrekt vergeben! Hat jemand eine Ahnung was das sein könnte?

Danke und Gruss aus der Schweiz

  1. Gude,

    Probier´s mal mit:

    $fp= fopen($datei , "w");

    fp = fopen($datei, "w");

    fwrite($datei , $inhalt);

    fwrite($datei, $inhalt);

    Gruß
    Carlo

    1. Hello,

      Irgendwie scheine ich zu blöd zu sein, aber ich kann in deiner Antwort keinen Unterschied zu meiner Version finden.

      Sorry & Gruss Phil

      1. Gude

        statt

        fwrite(xy , dsd);  fwrite(xy, dsd);

        Gruß
        Carlo

        1. Hey,

          Ach so :-) Sorry! Ja, habe ich bei beiden Abgeändert! Hat aber nichts gebracht!

          Danke & Gruss Phil

          1. Hallo,

            hab grad ma dein Script auf meinem Server laufen lassen.

            Jetzt hab ich den Fehler:

            Du musst in die mittels fopen(); geöffnete Datei schreiben nicht in $datei. Warum denn dan eigentlich fopen().

            Also:
            fwrite($fp, $inhalt);

            Gruß
            Carlo

            1. Hello,

              Stimmt :-) Habe ich eben auch Bemerkt! Die Kleinigkeiten machens aus!

              Vielen Dank für die Hilfe und ein schöner Abend!

              So würde es übrigens auch gehen:

              $Dateiname = "news.txt";
              $Datei = fOpen($Dateiname,"w");
              fPuts($Datei,$inhalt);
              fClose($Datei);

              Danke und Gruss Phil

    2. Hallo Carlo,

      $fp= fopen($datei , "w");
      fp = fopen($datei, "w");

      Ein Dollar sollte schon vor das »fp« ...

      fwrite($datei , $inhalt);
      fwrite($datei, $inhalt);

      PHP ist es egal ob vor dem Komma ein Leerzeichen kommt, oder nicht.

      Grüße aus Nürnberg
      Tobias

  2. Hallo Phil,

    $text = $_POST['news'];
    $inhalt = stripslashes ($news); // Entfernt "/"

    erst kopierst du den Inhalt von $_POST['news'] (überflüssigerweise) in $text, und dann versuchst du auf die vmtl. nicht definierte Variable $news stripslashes() anzuwenden - ersetze die beiden Zeile einfach durch $inhalt = stripslahes($_POST['news']); (du solltest aber ggf. noch eine Prüfung einbauen, die schaut, ob magic_quotes_gpc überhaupt aktiv ist).

    $datei = "news.txt";
    $fp= fopen($datei , "w");
    fwrite($datei , $inhalt);

    Schau nochmal ins Handbuch was fwrite() als ersten Parameter erwartet. Tipp: der Dateiname ist es nicht.

    Grüße aus Nürnberg
    Tobias

  3. echo $begrüßung;

    Warning: fwrite(): supplied argument is not a valid stream resource in /home/www/web0/html/admin/socket.php on line 11

    Alle Rechte habe ich korrekt vergeben! Hat jemand eine Ahnung was das sein könnte?

    Auch bei dir steht mal wieder etwas in einer Variable, was offensichtlich nicht richtig ist. Wenn man den Fehler nicht durch Code-Ansehen findet, sollte man sich die Inhalte der beteiligten Variablen ausgeben: Ein var_dump($datei) hätte gezeigt, dass der Inhalt ein String ist. Und damit wird erstmal klar, warum PHP keine "stream resource" finden kann. Den Rest sollte die Funktionsbeschreibung im PHP-Handbuch klären.

    echo "$verabschiedung $name";