Badworts erstellen... Wie?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Badworts erstellen... Wie?

    Hallo, ich habe einen Badwortfilter, der funktioniert auch super!
    Nun will ich ein Formular machen, in dem man selber die Badworts erstellen kann.
    Mein Problem aber ist, wie ich in einem textfeld die verschiedenen Badworts erkenne.
    Also dass z.B. in jeder Zeile immer nur 1 Badwort ist.
    Wie geht das?

    Danach will ich es so:
    $badword[0] = "wort";
    $badword[1] = "...";

    in eine Datei speichern.


    Weiss hier jemand einen für mich guten Weg?
    Gruss adihas

  • #2
    implode();

    Kommentar


    • #3
      Anders herum ... explode("\n", $_POST["badwords"]); ....
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        meinte ich ja

        Kommentar


        • #5
          Und wie kann ich jetzt die Wörter abspeichern?
          Also wie schaffe ich es, damit jedes Wort so abgespeichert wird:

          PHP-Code:
          $badword[0] = "1wort";
          $badword[1] = "2wort";
          $badword[2] = "3wort";
          ... 
          ?

          Bis jetzt habe ich folgenden Code:
          PHP-Code:
          <form method="POST" action="admin2.php?save=yes">
            <p><textarea rows="8" name="badworts" cols="35"></textarea><br>
            <input type="submit" value="save"><input type="reset" value="löschen"></p>
          </form>
          <?

          if($save == "yes")
          {


          $badwort = explode("\n", $_POST["badwords"]);


          $badwortfile = fopen("config/badworts.php","w");
          fwrite($badwortfile,"<?

          # Badwortliste

          ?>");
          fclose($badwortfile);



          }
          ?>
          Weiss auch nicht, ob irgendetwas von hier stimmt (bis jetzt)...

          Gruss adihas

          Kommentar


          • #6
            Wenn du das Explode gemacht hast, hast du die Wörte also alle in einem Array. Dann brauchst du nur noch hinzugehen und daraus mittels Schleife deine TXT. Datei zu erstellen.

            Kommentar


            • #7
              hmm...ich habe keine Ahnig wie ich anfangen muss...Bis jetzt konnte ich mich halbwegs ohne Arrays durchmogeln...
              Kannst du mir irgendiwe helfen?
              Vielen Dank!
              Gruss adihas

              Kommentar


              • #8
                sie dir mal foreach() an.

                BTW: Das hier ist ein Array:
                $badword[0] = "1wort";
                $badword[1] = "2wort";
                $badword[2] = "3wort";
                ...

                Kommentar


                • #9
                  So, habe jetzt mal etwas Probiert, vielen Dank für deinen Tipp!
                  Irgendwie habe ich etwas vergessen oder Variabeln vertauscht...

                  PHP-Code:
                  <?

                  if($show == "yes")
                  {


                  $badwort = explode("\n", $_POST["badwords"]);

                  $i = 0; /* nur für Anschauungs-Zweck */

                  foreach($badwort as $v) {
                      print "\$badwort[$i] =\"$v\";\n";
                      $i++;
                  }
                  }
                  ?>

                  Kommentar


                  • #10
                    Was gibt der denn aus?
                    Du escapest ein bisschen komisch, glaube ich.
                    wenn du schon $i benutzt, solltest dus auch mal ausgeb.

                    Kommentar


                    • #11
                      Er gibt immer das aus:

                      $badwort[0] ="";

                      egal was ich im Formular eingebe!?

                      Kommentar


                      • #12
                        Hat dein Form den richtigen Namen?

                        Kommentar


                        • #13
                          register_globals?
                          mein Sport: mein Frühstück: meine Arbeit:

                          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                          Kommentar


                          • #14
                            So, habe jetzt nur noch ein "kleines" Problem, dass ich ohne Hilfe nicht lösen kann.
                            Warum speichert es die Wörter so:
                            PHP-Code:
                            <? $badword[0] = "Test\n";?>
                            <? $badword[1] = "Hallo\n";?>
                            <? $badword[2] = "Fuck\n";?>
                            <? $badword[3] = "Shit";?>
                            Bei allen Wörtern hat es nach dem eigentlichen Wort noch ein \n, warum das, wenn ich folgenden Code benutze:


                            PHP-Code:
                            <?

                            if($save == "yes")
                            {
                            if($badwords <= "1")
                            {
                            echo "Ohne einem Badwort kann nichts gespeichert werden!";
                            exit;
                            }
                            $badwortfile2 = "config/badworts.php";

                            $badwort = explode("\n", $_POST["badwords"]);

                            $i = 0; /* nur für Anschauungs-Zweck */

                                $badwortfile = fopen($badwortfile2, "w");
                                fputs($badwortfile,"");
                                fclose($badwortfile);

                                print "Gespicherte Wörter:<br><br>";
                                foreach($badwort as $v) {

                                $v = eregi_replace("\n","",$v);

                                print "$i. --> $v<br>";


                                $badwortfile = fopen($badwortfile2, "a");
                                fputs($badwortfile,"<? \$badword[$i] = \"$v\";?>\n");
                                fclose($badwortfile);


                                $i++;
                            }
                            }
                            ?>
                            Vielen Dank für eure Hilfe.
                            Gruss adihas

                            Kommentar


                            • #15
                              ich glaube explode lässt das trennzeichen am wortende stehen, das müsstest du also noch extra entfernen.
                              PHP-Code:
                              $badwort explode("\n"$_POST["badwords"]); 
                              dazu bietet sich z.b. trim() an.


                              EDIT:
                              btw:

                              was ist denn das hier
                              fputs($badwortfile,"<? \$badword[$i] = \"$v\";?>\n");
                              wieder für ein unsinn, du bist bereits in einem php-teil, also wofür nochmal mit <? ... ?> den parser anschmeissen?

                              Zuletzt geändert von wahsaga; 12.03.2003, 16:37.
                              I don't believe in rebirth. Actually, I never did in my whole lives.

                              Kommentar

                              Lädt...
                              X