Problem mit Post-Übergabe & fwrite
Phil
- php
0 Carlo0 Tobias Kloth0 dedlfix
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
Gude,
Probier´s mal mit:
$fp= fopen($datei , "w");
fp = fopen($datei, "w");
fwrite($datei , $inhalt);
fwrite($datei, $inhalt);
Gruß
Carlo
Hello,
Irgendwie scheine ich zu blöd zu sein, aber ich kann in deiner Antwort keinen Unterschied zu meiner Version finden.
Sorry & Gruss Phil
Gude
statt
fwrite(xy , dsd); fwrite(xy, dsd);
Gruß
Carlo
Hey,
Ach so :-) Sorry! Ja, habe ich bei beiden Abgeändert! Hat aber nichts gebracht!
Danke & Gruss Phil
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
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
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
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
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";