Problem mit Badword funktiom

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

  • Problem mit Badword funktiom

    Hallo.
    Ich habe mir für mein gästebuch eine badword-filter-funktion geschrieben,aber leider klappt das nicht so richtig.

    PHP-Code:
    function badword($text)

    $words="geil,scheisse,fuck"
    $badwords=explode(","$words); 
    for(
    $i=0;$i<count($badwords);$i++){ 
    $text str_replace("$badwords[$i]","*zensiert*",$text); 

    return 
    $text

    $insert mysql_query("INSERT INTO gb_daten(datum, name,email,home,text) VALUES('$datum', '$name', '$email','$home','$text')"); 

  • #2
    was klappt nicht so wie es soll?
    was hast du zum debuggen schon gemacht?
    erscheinen fehlermeldungen?
    ....

    Kommentar


    • #3
      Fehlermeldung keine.
      Er ersetzt die Wörter die ich ihm angegeben habe nicht
      zb.:scheisse soll dann so ausehen *zensiert*

      Kommentar


      • #4
        hallo,


        probier's mal hiermit:


        http://toter-link.de/php/bad.php
        Die meiste Unwissenheit könnte besiegt werden. Wir eignen uns nur deshalb keine Kenntnisse an, weil wir sie nicht wünschen.

        Kommentar


        • #5
          Wo rufst du denn die Funktion überhaupt auf???

          Kommentar


          • #6
            Re: Problem mit Badword funktiom

            Was soll denn das hier?
            PHP-Code:
            ...str_replace("$badwords[$i]","*zensiert*",$text); 
            wenn du mit Variable als Argument nicht vernünftig umgehen kannst, dann sollst du dich nicht wundern

            btw: str_replace kann auch mit array als Such- und Ersatzbegriff umgehen.

            Kommentar


            • #7
              Also ich weiß nicht was du hast, bei mir funktioniert das:
              PHP-Code:
              <?
              $text = "Das ist ja eine geile schöne scheisse hier, fuck";
              function badword($text)

                  $words="geil,scheisse,fuck"; 
                  $badwords=explode(",", $words);
                  for($i=0;$i<count($badwords);$i++)
                      $text = str_replace("$badwords[$i]","*zensiert*",$text); 
                  return $text; 


              echo badword($text);
              ?>
              Nur würde ich dir empfehlen str_ireplace zu verwenden (wenn du PHP5 hast), sonst "zensiert" er das wort Scheisse, GEIL, ... nicht.

              Forumregeln!

              Gute PHP-(tutorial-)Seiten

              Kommentar


              • #8
                Sorry, wollte editeieren, nicht zitieren ....

                Forumregeln!

                Gute PHP-(tutorial-)Seiten

                Kommentar


                • #9
                  die for schleife kanst du dir bei str_replace sparen, siehe Handbuch www.php.net

                  PHP-Code:
                  $words="geil,scheisse,fuck"
                  Warum speicherst du die wörter nicht gleich in ein array, dan kannst du dir explode sparen
                  mfg
                  marc75

                  <Platz für anderes>

                  Kommentar

                  Lädt...
                  X