TextArea soll text in einer Textdatei beabeiten können

  • PHP

  • Clawhammer
  • 2622 Aufrufe 15 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • TextArea soll text in einer Textdatei beabeiten können

    Hallo zusammen!

    Ich bräucht mal ein bissl Hilfe.
    Und zwar habe ich ein Textareafeld in dem der inhalt einer Textdatei angezeigt wird. Nun möchte ich es machen das ich innerhalb des Textarea Feldes den Text aus der Textdatei bearbeiten kann. allerdings hab ich da noch so meine probleme :(

    Wäre super wenn mir wer helfen könnte.

    mfg
    Clawhammer


    PHP-Quellcode

    1. <?
    2. session_start();
    3. if(!session_is_registered(myusername)){
    4. header("location:main_login.php");
    5. }
    6. ?>
    7. <style type="text/css">
    8. <!--
    9. .Stil1 {font-size: 46px}
    10. -->
    11. </style>
    12. <div align="center" class="Stil1">
    13. <div align="center">
    14. <p>
    15. Newspostingsystem</p>
    16. </div>
    17. </div>
    18. <p align="center">&nbsp;</p>
    19. <p align="center">&nbsp;</p>
    20. <table width="100%" border="0">
    21. <tr>
    22. <td>News 1 </td>
    23. <td> News 2</td>
    24. <td>News 3 </td>
    25. </tr>
    26. </table>
    27. <table width="100%" border="0">
    28. <tr>
    29. <td valign="top"><textarea name="textarea" cols="40" rows="15"><?php
    30. $datei = fopen("../News1.txt","r+");
    31. echo fread($datei,1000);
    32. fclose($datei);
    33. ?>
    34. </textarea></td>
    35. <td valign="top"><p>
    36. <textarea name="textarea2" cols="40" rows="15"><?php
    37. $datei = fopen("../News2.txt","r+");
    38. echo fread($datei,1000);
    39. fclose($datei);
    40. ?>
    41. </textarea>
    42. </p> </td>
    43. <td valign="top"><textarea name="textarea3" cols="40" rows="15"><?php
    44. $datei = fopen("../News3.txt","r+");
    45. echo fread($datei,1000);
    46. fclose($datei);
    47. ?>
    48. </textarea></td>
    49. </tr>
    50. </table>
    51. <p align="center"><a href="../News.php">Main</a></p>
    52. <div align="center"></div>
    Alles anzeigen
  • Moin,
    wo hast du denn jetzt Probleme?
    Eigentlich haste doch alles zu deinem Glück.
    Fehlt halt nur noch ein Form-Tag um die Textareas und ein <input type="submit".../> (Wenn du nicht weißt, was ich hier von dir will, google nach "selfhtml" und das Wort deines Unwissens)

    Danach einfach abfragen ob die Form abgeschickt wurde und anstatt fread, fwrite und anstatt mode "r+", "w+" benutzen.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • So...

    Hab jetzt mal was neugeschrieben damit es einfacher und übersichtlicher ist.
    Lesen kann ich editieren immernochnicht hiermit aja und der Submit button ist da:

    PHP-Quellcode

    1. <form id="form1" name="form1" method="post" action="">
    2. <p>
    3. <textarea name="textarea" cols="50" rows="10"><?php
    4. $datei = fopen("text.txt","w+");
    5. echo fwrite($datei,1000);
    6. fclose($datei)?>
    7. </textarea>
    8. </textarea>
    9. </p>
    10. <p>
    11. <input type="submit" name="Submit" value="Senden" />
    12. </p>
    13. </form>
    Alles anzeigen


    Was muss ich nun noch genau machen?
    Hab so das gefühl das mir der verweis fehlt weil eine leere datei erzeugt er mir ja.
  • Ich habe dir das mal so gemacht, wie ich das auf die Schnelle machen würde:

    PHP-Quellcode

    1. <?php
    2. if(!isset($_POST['Submit'])) { //Der Name des Submit-Button
    3. ?>
    4. <form id="form1" name="form1" method="post" action="">
    5. <p>
    6. <textarea name="textarea" cols="50" rows="10"><?php
    7. $datei = fopen("text.txt","w+");
    8. echo htmlspecialchars(fwrite($datei,1000)); //Damit bei einem </textarea> im textarea das dadrin dargestellt wird und nicht die seite ruiniert
    9. fclose($datei)?>
    10. </textarea>
    11. </textarea>
    12. </p>
    13. <p>
    14. <input type="submit" name="Submit" value="Senden" />
    15. </p>
    16. </form>
    17. <?php
    18. }
    19. else {
    20. $datei=fopen("text.txt","w+");
    21. fwrite($datei,nl2br($_POST['textarea'])); //nl2br damit zeilenumbrüche
    22. fclose($datei);
    23. echo "Erfolgreich geändert";
    24. }
    25. ?>
    Alles anzeigen

    Hoffe das bringt dich weiter.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • So....
    Hab jetzt mal mein script so abgeändert und ich kann endlich schreiben:

    PHP-Quellcode

    1. <form id="form1" name="form1" method="post" action="">
    2. <p>
    3. <textarea name="textarea" cols="50" rows="10"><?php
    4. $datei = fopen("text.txt","w+");
    5. fwrite($datei,nl2br($_POST['textarea']));
    6. fclose($datei);
    7. ?>
    8. </textarea>
    9. </textarea>
    10. </p>
    11. <p>
    12. <input type="submit" name="Submit" value="Senden" />
    13. </p>
    14. </form>
    Alles anzeigen


    Jetzt hab ich nurnoch das problem das mir wenn ich die Seite öffne und ich in der Textdatei inhalt habe er nicht im Textfeld angezeigt wird? Was müste ich da noch ändern?

    Aja und Danke schonmal hier für deine Hilfe ;)
  • Öh, warum willst du mit fwrite den Inhalt anzeigen lassen? Das ergibt ja kein Sinn.
    Du musst das schon so machen, wie ich es dir angeboten habe. Erst mit fread auslesen und anzeigen und beim Knopfdruck schreiben.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • So.....

    Also ich hab jetzt wieder versuch mein fertiges kleines script in mein Newssystem reinzupacken. Allerdings werden jetzt wieder nur leer Dateien erzeugt und ich weis nicht warum ??? :(

    Hier mein Code:

    PHP-Quellcode

    1. <?
    2. session_start();
    3. if(!session_is_registered(myusername)){
    4. header("location:main_login.php");
    5. }
    6. ?>
    7. <style type="text/css">
    8. <!--
    9. .Stil1 {font-size: 46px}
    10. -->
    11. </style>
    12. <div align="center" class="Stil1">
    13. <div align="center">
    14. <p>
    15. Newspostingsystem</p>
    16. </div>
    17. </div>
    18. <p align="center">&nbsp;</p>
    19. <p align="center">&nbsp;</p>
    20. <table width="100%" border="0">
    21. <tr>
    22. <td width="34%">News 1 </td>
    23. <td width="32%"> News 2</td>
    24. <td width="34%">News 3 </td>
    25. </tr>
    26. </table>
    27. <table width="100%" border="0">
    28. <tr>
    29. <td width="34%" height="161" valign="top"><?php
    30. $datei = fopen("../News1.txt","r+");
    31. echo fread($datei,1000);
    32. fclose($datei);
    33. ?>&nbsp;</td>
    34. <td width="32%" valign="top"><?php
    35. $datei = fopen("../News2.txt","r+");
    36. echo fread($datei,1000);
    37. fclose($datei);
    38. ?></td>
    39. <td width="34%" valign="top"><?php
    40. $datei = fopen("../News3.txt","r+");
    41. echo fread($datei,1000);
    42. fclose($datei);
    43. ?></td>
    44. </tr>
    45. </table>
    46. <table width="100%" border="0">
    47. <tr>
    48. <td><form id="form2" name="form2" method="post" action="">
    49. <div align="center">
    50. <textarea name="textarea" cols="35" rows="10"><?php
    51. $datei=fopen("../News1.txt","w+");
    52. fwrite($datei,nl2br($_POST['textarea']));
    53. fclose($datei);
    54. ?>
    55. </textarea>
    56. </div>
    57. </form>
    58. </td>
    59. <td><form id="form3" name="form3" method="post" action="">
    60. <div align="center">
    61. <textarea name="textarea2" cols="35" rows="10"><?php
    62. $datei=fopen("../News2.txt","w+");
    63. fwrite($datei,nl2br($_POST['textarea2']));
    64. fclose($datei);
    65. ?>
    66. </textarea>
    67. </div>
    68. </form>
    69. </td>
    70. <td><form id="form4" name="form4" method="post" action="">
    71. <div align="center">
    72. <textarea name="textarea3" cols="35" rows="10"><?php
    73. $datei=fopen("../News3.txt","w+");
    74. fwrite($datei,nl2br($_POST['textarea3']));
    75. fclose($datei);
    76. ?>
    77. </textarea>
    78. </div>
    79. </form>
    80. </td>
    81. </tr>
    82. </table>
    83. <p align="center">&nbsp;</p>
    84. <p align="center"><a href="../News.php">Main</a></p>
    85. <div align="center">
    86. <form id="form1" name="form1" method="post" action="">
    87. <input type="submit" name="Submit" value="News Updaten" />
    88. </form>
    89. </div>
    Alles anzeigen
  • Moin,
    also ich glaube du hast noch sehr wenig Erfahrung mit PHP. Ich empfehle dir dieses Tutorial: #php/QuakeNet Tutorial - Einführung

    So müsste dein Code aussehen, wenn du mein Beispiel richtig benutzen würdest:

    PHP-Quellcode

    1. <?
    2. session_start();
    3. if(!session_is_registered(myusername)){
    4. header("location:main_login.php");
    5. }
    6. if(!isset($_POST['Submit'])) {
    7. ?>
    8. <style type="text/css">
    9. <!--
    10. .Stil1 {font-size: 46px}
    11. -->
    12. </style>
    13. <div align="center" class="Stil1">
    14. <div align="center">
    15. <p>
    16. Newspostingsystem</p>
    17. </div>
    18. </div>
    19. <p align="center">&nbsp;</p>
    20. <p align="center">&nbsp;</p>
    21. <table width="100%" border="0">
    22. <tr>
    23. <td width="34%">News 1 </td>
    24. <td width="32%"> News 2</td>
    25. <td width="34%">News 3 </td>
    26. </tr>
    27. </table>
    28. <form method="post" action="">
    29. <table width="100%" border="0">
    30. <tr>
    31. <td width="34%" height="161" valign="top"> <textarea name="textarea" cols="35" rows="10"><?php
    32. $datei = fopen("../News1.txt","r+");
    33. echo htmlspecialchars(fread($datei,1000));
    34. fclose($datei);
    35. ?></textarea></td>
    36. <td width="32%" valign="top"> <textarea name="textarea2" cols="35" rows="10"><?php
    37. $datei = fopen("../News2.txt","r+");
    38. echo htmlspecialchars(fread($datei,1000));
    39. fclose($datei);
    40. ?></textarea></td>
    41. <td width="34%" valign="top"> <textarea name="textarea3" cols="35" rows="10"><?php
    42. $datei = fopen("../News3.txt","r+");
    43. echo htmlspecialchars(fread($datei,1000));
    44. fclose($datei);
    45. ?></textarea></td>
    46. </tr>
    47. </table>
    48. <input type="submit" name="Submit" value="News Updaten" />
    49. </form>
    50. }
    51. else {
    52. $datei=fopen("../News1.txt","w+");
    53. fwrite($datei,nl2br($_POST['textarea']));
    54. fclose($datei);
    55. $datei=fopen("../News2.txt","w+");
    56. fwrite($datei,nl2br($_POST['textarea2']));
    57. fclose($datei);
    58. $datei=fopen("../News3.txt","w+");
    59. fwrite($datei,nl2br($_POST['textarea3']));
    60. fclose($datei);
    61. echo "Erfolgreich editiert!";
    62. }
    63. ?>
    Alles anzeigen


    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Hm ich krieg dein script irgendwie nicht zum laufen, überall irgendwelche fehler :(
    Muss ich das eigentlich mit der IF schleife machen? Wollte das erstmal ohne machen da ich ja jetzt 1 Feld zum anzeigen und 1 Feld zum neuschreiben habe.

    Ich verstehe irgendwie nicht warum der mir nichts in die Dateien schreibt es ist doch so richtig:

    PHP-Quellcode

    1. $datei=fopen("../News1.txt","w+");
    2. fwrite($datei,nl2br($_POST['textarea']));
    3. fclose($datei);
  • Was denn für Fehler?
    Und was willst du genau mit der IF-Abfrage machen?
    - Das schreiben?

    Ja, an dem code gibt es nichts zu meckern, darum ist die Frage, was für Fehler ausgegeben werden wichtig.

    Gruß
    Broken Sword
    Auf dem Abstellgleis sah man ihn liegen,
    Auf dem Abstellgleis zwischen Schwelle und Gestein,
    Auf dem Abstellgleis im strömenden Regen,
    Auf dem Abstellgleis allein.
  • Jo jetzt funktioniert alles :)
    Ich lerne es momentan auch, hab vor mir ne kleine seite zu basteln um in die Materie einzusteigen und um zu sehen was ich so dafür lernen muss.

    Ich hätte nurnoch eine kleine frage:

    fwrite($datei,nl2br($_POST['textarea']));

    Das textarea ist ja das was übergeben werden wird. Was ist wenn ich 2 Felder mit einem Zeilenumbruch übergeben will mit einem Befehel geht das? Hab jetzt bissl versucht aber nichts richtig hinbekommen.