#1 3. Juni 2007 Textdatei Ändern.. ich will einen Text in eine txt schreiben.. kann mir einer sagen was ich falsch mache.. es funktioniert irrgendwie nicht.. habe für beide dateien die rechte auf 777 gestellt PHP: <? php $file = "onemli.txt" ; if ( $gesendet ) { $datei_speichern = fopen ( $file , "w" ); htmlentities ( stripslashes ( $_POST [ 'text' ])); fwrite ( $datei_speichern , $_POST [ 'text' ]); fclose ( $datei_speichern ); echo "<i>-- Änderung erfolgreich --</i>" ; } echo "<form action=\" $PHP_SELF \" method=\"POST\">" ; echo "<textarea name=\"text\" cols=\"50\" rows=\"5\">" ; readfile ( $file ); echo "</textarea><BR>" ; echo "<input type=\"submit\" name=\"gesendet\" value=\"speichern\">" ; echo "</form><BR>" ; ?> + Multi-Zitat Zitieren
#2 3. Juni 2007 AW: Textdatei Ändern.. Wa genau funktioniert denn nicht? Schreibt der gar nix oder was? Das liegt vielleicht daran weil $gelesen nie true ist nach deinem Schnipsel! PS, du speicherst den Rückgabe werte von htmlentities und stripslashes wo? + Multi-Zitat Zitieren
#3 3. Juni 2007 AW: Textdatei Ändern.. Ich finde es übersichtlicher, für echo die eingestrichenen Anführungszeichen (also ' statt " ) zu verwenden. Dann musst dir dir auch keine Gedanken um evtl vergessene Backslashs machen. Ich glaub nicht, dass daran der Fehler liegt, wollte das aber mal nebenbei als Tipp loswerden. + Multi-Zitat Zitieren
#4 3. Juni 2007 AW: Textdatei Ändern.. Naja man sollte diese Zeichen" so verwenden wie sie gedacht sind , " bei Strings in dem Variablen interpretiert, ' bei Strings in dem keine Variablen interpretiert werden sollen. Die video tipps von zend geben dazu noch professionellere Tipps! Zumal das readfile($file) ja auch gar nciht ausgegeben wird. + Multi-Zitat Zitieren
#5 3. Juni 2007 AW: Textdatei Ändern.. also erstmal was nicht funktioniert.. wenn ich auf speichern klicke wird die textdatei nicht geändert.. der wückgabewert wird doch in $_POST['text'] gespeichert oder nicht?? + Multi-Zitat Zitieren
#6 3. Juni 2007 AW: Textdatei Ändern.. Wird der if-Teil in dem es geändert wird überhaupt aufgerufen, denn wie ich sagte, deinem Scriptschnipsel entsprechend evaluiert $gesendet normalerweise nie zu true! Und readfile() wird auch nicht ausgegeben, ansonsten fällt mir da jetzt kein Grund auf, wieso du kein Ergebnis sehen solltest! Wenn du doch $_POST['text'] nützt, wieso denn nicht auch gleich $_POST['gesendet']? Nein stripslashes und htmlentities geben einen wert zurück, den du mit $_POST['text'] = htmlentities(stripslashes($_POST['text'])) speichern müsstest. Und readfile($file) brauchst du nach deinem Script auch nicht machen sondern echo $_POST['text'] würde vollkommen reichen! + Multi-Zitat Zitieren
#7 3. Juni 2007 AW: Textdatei Ändern.. gesendet wird doch true sobald ich auf senden button klicke.. und ich kann doch schlecht $_POST['gesendet'] wählen, da es der name für den button ist.. und nicht des textfeldes.. + Multi-Zitat Zitieren
#8 3. Juni 2007 AW: Textdatei Ändern.. $gesendet wird bei der Standardeinstellung aktueller PHP - Version seit PHP 4.2.0 bei einem Scriptschnipsel wie deinem nie true. Die Abfrage ob $_POST['gesendet'] true ist, ist in dem Fall die selbe wie deine Abfrage, ob $gesendet zu true evaluiert, mit dem Unterschied, dass bei mir die Standardeinstellung von PHP beachtet wird. PHP: <? php if (isset( $_POST [ 'gesendet' ])) { $datei_speichern = fopen ( 'onemli.txt' , "w" ); $text = htmlentities ( stripslashes ( $_POST [ 'text' ])); fwrite ( $datei_speichern , $text ); fclose ( $datei_speichern ); print '<em>-- Änderung erfolgreich --</em>' ; } @ print "<form action=\" { $_SEVER [ 'PHP_SELF' ]} \" method=\"post\"> <textarea cols=\"50\" name=\"text\" rows=\"5\"> { $text } </textarea><br />" ; print '<button name="gesendet" type="submit">Speichern</button> </form><br />' ; ?> Wäre meine Version, wobei ich es noch anders machen würde. + Multi-Zitat Zitieren
#9 3. Juni 2007 AW: Textdatei Ändern.. hab inzwischen dashier ^^.. funkt auch PHP: <? $file = "onemli.txt" ; if (isset( $_POST [ 'gesendet' ])) { $datei_speichern = fopen ( $file , "w" ); $_POST [ 'text' ] = htmlentities ( stripslashes ( $_POST [ 'text' ])); if( fwrite ( $datei_speichern , $_POST [ 'text' ])){ echo "<i>-- Änderung erfolgreich --</i><br/>" ; }else{ echo "<i>-- Fehler beim speichern --</i><br/>" ; } fclose ( $datei_speichern ); } echo "<form name=\"form1\" method=\"post\">" ; echo "<textarea name=\"text\" cols=\"50\" rows=\"5\">" ; echo file_get_contents ( $file ); echo "</textarea><br/>" ; echo "<input type=\"submit\" name=\"gesendet\" value=\"Speichern\"/>" ; echo "</form>" ; ?> + Multi-Zitat Zitieren