Code Prob mit fwrite & fclose

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

  • Code Prob mit fwrite & fclose

    Hallo also ich habe ein kleines Problem, ich habe mir was erstellt was eigentlich eine Datei öffnen soll was reinschreiben soll und das ganze wieder schliessen soll aber dennoch Klappt es nicht und es geht in die Hose ;) ^^, ich weiß zwar nicht warum aber es geht nicht.

    Schaut selbst:

    Quellcode

    1. <?php
    2. $wort = $_POST['link_wort'];
    3. $img = $_POST['link_img'];
    4. $send = $_POST['send'];
    5. $filename="google.txt";
    6. $fp=fopen($filename, "a+");
    7. $link['text'] = $link['text']=eregi_replace("$wort", "<img width=20 height=10 src=zensiert/$img.jpg>", $link['text']);
    8. fwrite($fp, $link['text']);
    9. fclose($fp);
    10. if(fwrite($fp, $link['text'])) {
    11. echo "Wort wurde hinzugefügt!";
    12. }
    13. else
    14. {
    15. echo "Wort konnte nicht hinzugefügt werden!";
    16. }
    17. ?>
    Alles anzeigen


    greetZ Shorty
    --Kommt noch--
  • Zeigt einen Fehler in Line 7:
    Warning: eregi_replace(): REG_EMPTY in /home/httpd/vhosts/shake.traffino.de/httpdocs/shoutbox/neu/autozens1.php on line 7

    Schau so sieht das Komplett aus!


    Quellcode

    1. <?php
    2. $wort = $_POST['link_wort'];
    3. $img = $_POST['link_img'];
    4. $filename="google.txt";
    5. $fp=fopen($filename, "a+");
    6. $link['text'] = eregi_replace($wort, '<img width="20" height="10" src="zensiert/'.$img.'.jpg">', $link['text']);
    7. $intResult = fwrite($fp, $link['text']);
    8. fclose($fp);
    9. if(false !== $intResult)
    10. {
    11. echo "Das Wort wurde hinzugefügt!";
    12. } else {
    13. echo "Das Wort konnte nicht zur Zensur hinzugefügt werden!";
    14. }
    15. ?>
    16. <table width="499" border="0">
    17. <form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
    18. <tr>
    19. <td width="83">Wort:</td>
    20. <td width="406"><input name="link_wort" type="text" size="50"></td>
    21. </tr>
    22. <tr>
    23. <td>IMG:</td>
    24. <td><input name="link_img" type="text" size="50"></td>
    25. </tr>
    26. <tr>
    27. <td align="center"><input type="reset" value="Reset"></td>
    28. <td><input type="submit" name="send" value="Senden"></td>
    29. </tr>
    30. </form>
    31. </table>
    Alles anzeigen
    --Kommt noch--
  • handelt es sich bei dem obigen code um einen codeausschnitt oder um den kompletten code?

    falls es der komplett code war, dann hast du vergessen zu überprüfen, ob das [coderwiki]Informationen/Formular[/coderwiki] überhaupt abgeschickt wurde...
    bei jedem aufruf der url im [coderwiki]Informationen/Browser[/coderwiki] hätte er also in die datei geschrieben..
    hier die abfrage

    Quellcode

    1. <?php
    2. if(isset($_POST['link_wort']))
    3. {
    4. $wort = $_POST['link_wort'];
    5. $img = $_POST['link_img'];
    6. $filename="google.txt";
    7. $fp=fopen($filename, "a+");
    8. $link['text'] = eregi_replace($wort, '<img width="20" height="10" src="zensiert/'.$img.'.jpg">', $link['text']);
    9. $intResult = fwrite($fp, $link['text']);
    10. fclose($fp);
    11. if(false !== $intResult)
    12. {
    13. echo "Das Wort wurde hinzugefügt!";
    14. } else {
    15. echo "Das Wort konnte nicht zur Zensur hinzugefügt werden!";
    16. }
    17. }
    18. ?>
    19. <table width="499" border="0">
    20. <form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
    21. <tr>
    22. <td width="83">Wort:</td>
    23. <td width="406"><input name="link_wort" type="text" size="50"></td>
    24. </tr>
    25. <tr>
    26. <td>IMG:</td>
    27. <td><input name="link_img" type="text" size="50"></td>
    28. </tr>
    29. <tr>
    30. <td align="center"><input type="reset" value="Reset"></td>
    31. <td><input type="submit" name="send" value="Senden"></td>
    32. </tr>
    33. </form>
    34. </table>
    Alles anzeigen
  • "70abc" schrieb:

    Die Fehlermeldung "REG_EMPTY" bedeutet, das er keine Regular Expression im ersten Parameter gefunden hat. Daher wäre es eben ganz interresant zu wissen, was GFXShorty in seinem Formular eingegeben hatte...

    70abc


    das script wurde ja schon ausgeführt ohne, dass das formular gesendet wurde. also ist die variable leer

    @wulfgang:
    du hast recht $link['text'] ist natürlich schwachsinnig...
    er muss es mit $_POST['link_wort'] ersetzen
    aber eine variable mit sich selbst zu ersetzen ist absolut kein problem.. spart wichtigen speicher ;)
  • Das Formular wie von d0nUt gesagt führt sich bereits vorher aus, was es nicht soll, in diesem Formular soll man für die Variable $wort = $_POST['link_wort'] eingeben Sprich das ist das "zensierte Wort"

    für die var $img = $POST['link_img'] gleich das bild wodurch es ersetzt wird!

    Joa und das soll vom Formular abgegeben werden und in die google.txt in meinem falle dann zensur.php reingeschrieben werden, sodass man automatisch per dieses Formulares "zensierte Wörter" adden kann.

    ----------

    @ d0nUt, jetzt führt er die anwendung wenigstens nicht immer bei aufruf aus, sondern nur wenn man es abschickt, aber die Daten ($link['text']) wird nicht hinzugefügt in die google.txt
    --Kommt noch--
  • welchen code hast du denn nun im einsatz?

    lass mich das nochmal rekapitulieren...
    ich habe mir das so gedacht:

    der volltext steht in google.txt..
    in diesem text willst du das zensierte wort durch das bild ersetzen..
    anschließend willst du die datei google.txt mit dem neuen inhalt überschrieben

    das wäre der folgende code:

    Quellcode

    1. <?php
    2. if(isset($_POST['link_wort']))
    3. {
    4. $wort = $_POST['link_wort'];
    5. $img = $_POST['link_img'];
    6. $filename="google.txt";
    7. $wort = eregi_replace($wort, '<img width="20" height="10" src="zensiert/'.$img.'.jpg">', file_get_contents($filename));
    8. $fp=fopen($filename, "w");
    9. $intResult = fwrite($fp, $wort);
    10. fclose($fp);
    11. if(false !== $intResult)
    12. {
    13. echo "Das Wort wurde hinzugefügt!";
    14. } else {
    15. echo "Das Wort konnte nicht zur Zensur hinzugefügt werden!";
    16. }
    17. }
    18. ?>
    19. <table width="499" border="0">
    20. <form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
    21. <tr>
    22. <td width="83">Wort:</td>
    23. <td width="406"><input name="link_wort" type="text" size="50"></td>
    24. </tr>
    25. <tr>
    26. <td>IMG:</td>
    27. <td><input name="link_img" type="text" size="50"></td>
    28. </tr>
    29. <tr>
    30. <td align="center"><input type="reset" value="Reset"></td>
    31. <td><input type="submit" name="send" value="Senden"></td>
    32. </tr>
    33. </form>
    34. </table>
    Alles anzeigen


    willst du allerdings einfach nur eine datenbank mit zensierten wörter erstellen und für jedes wort ein individuelles bild konfigurieren, dann sollte dein code folgendermaßen aussehen

    Quellcode

    1. <?php
    2. if(isset($_POST['link_wort']))
    3. {
    4. $fp=fopen("google.txt", "a");
    5. $intResult = fwrite($fp, "\n".$_POST['link_wort'].'||'.$_POST['link_img']);
    6. fclose($fp);
    7. if(false !== $intResult)
    8. {
    9. echo "Das Wort wurde hinzugefügt!";
    10. } else {
    11. echo "Das Wort konnte nicht zur Zensur hinzugefügt werden!";
    12. }
    13. }
    14. ?>
    15. <table width="499" border="0">
    16. <form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
    17. <tr>
    18. <td width="83">Wort:</td>
    19. <td width="406"><input name="link_wort" type="text" size="50"></td>
    20. </tr>
    21. <tr>
    22. <td>IMG:</td>
    23. <td><input name="link_img" type="text" size="50"></td>
    24. </tr>
    25. <tr>
    26. <td align="center"><input type="reset" value="Reset"></td>
    27. <td><input type="submit" name="send" value="Senden"></td>
    28. </tr>
    29. </form>
    30. </table>
    Alles anzeigen


    verwenden tust du diese liste indem du folgendes tust

    Quellcode

    1. <?php
    2. //array füllen
    3. $eindimensional = file('google.txt');
    4. foreach($eindimensional as $line) {
    5. $line = explode('||', $line);
    6. $left[] = $line[0];
    7. $right[] = $line[1];
    8. }
    9. //deinen text filterst du dann so:
    10. $deinContent = str_replace($left, $right, $deinContent);
    Alles anzeigen
  • Also ich will einfach nur das es immer zur der google.txt egal ob leer oder schon was reingeschrieben, immer diesen

    $link['text']=eregi_replace("$wort", "<img width=20 height=10 src=zensiert/$img.jpg>", $link['text']);

    Text wieder reinschreibt und die Var $wort = immer durch das eingegebene Wort, das im Formular eingegeben wurde ersetzt wird.

    und so auch bei $img.


    a+ = [phpdoc]fopen[/phpdoc]

    notfalls erstellen, wenn nicht vorhanden und $link['text'] einfügen!

    Ich hoffe ich habe es nun mal verständlich rübergebracht ;)


    greetZ Shorty
    --Kommt noch--
  • oh sry!

    da hast du recht donut

    den code den ich euch ganz am anfang gegeben habe war alles von meinem code.!

    Das war nochma der vom anfang!

    Ich habe gedacht das nimmt das aus dem name des Formulars!

    Das der KOmplette!

    Quellcode

    1. <?php
    2. $wort = $_POST['link_wort'];
    3. $img = $_POST['link_img'];
    4. $send = $_POST['send'];
    5. $filename="google.txt";
    6. $fp=fopen($filename, "a+");
    7. $link['text'] = $link['text']=eregi_replace("$wort", "<img width=20 height=10 src=zensiert/$img.jpg>", $link['text']);
    8. fwrite($fp, $link['text']);
    9. fclose($fp);
    10. if(fwrite($fp, $link['text'])) {
    11. echo "Wort wurde hinzugefügt!";
    12. }
    13. else
    14. {
    15. echo "Wort konnte nicht hinzugefügt werden!";
    16. }
    17. ?>
    18. ?>
    19. <table width="499" border="0">
    20. <form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
    21. <tr>
    22. <td width="83">Wort:</td>
    23. <td width="406"><input name="link_wort" type="text" size="50"></td>
    24. </tr>
    25. <tr>
    26. <td>IMG:</td>
    27. <td><input name="link_img" type="text" size="50"></td>
    28. </tr>
    29. <tr>
    30. <td align="center"><input type="reset" value="Reset"></td>
    31. <td><input type="submit" name="send" value="Senden"></td>
    32. </tr>
    33. </form>
    34. </table>
    Alles anzeigen
    --Kommt noch--
  • siehst du das nichT?


    Hier ist das Eingabefeld doch mit dran!

    schau

    Quellcode

    1. <table width="499" border="0">
    2. <form method="post" action="<? $_SERVER['PHP_SELF']; ?>">
    3. <tr>
    4. <td width="83">Wort:</td>
    5. <td width="406"><input name="link_wort" type="text" size="50"></td>
    6. </tr>
    7. <tr>
    8. <td>IMG:</td>
    9. <td><input name="link_img" type="text" size="50"></td>
    10. </tr>
    11. <tr>
    12. <td align="center"><input type="reset" value="Reset"></td>
    13. <td><input type="submit" name="send" value="Senden"></td>
    14. </tr>
    15. </form>
    16. </table>
    Alles anzeigen
    --Kommt noch--
  • Das ist der TExt indem das Wort + bild ersetzt wird.!


    Genau dieser Text soll immer wieder dann untereinander reingeschrieben werden in die google.txt!

    Quellcode

    1. $link['text']=eregi_replace("$wort", "<img width=20 height=10 src=zensiert/$img.jpg>", $link['text']);



    und $wort soll dann druch das wort ersetzt werden und das bild durch $img

    muss man aber vorher in den gewünchten ordner mit hochladen!

    greetZ Shorty
    --Kommt noch--