[PHP] Textdatei Ändern..

Dieses Thema im Forum "Webentwicklung" wurde erstellt von naz, 3. Juni 2007 .

Schlagworte:
  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>" ;


    ?> 
     
  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?
     
  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.
     
  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.
     
  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??
     
  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!
     
  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..
     
  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>-- &Auml;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.
     
  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>" ;


    ?>
     
  10. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.