kostenloser Webspace werbefrei: lima-city


Probleme mit Array (PHP)

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    h****d

    Hey Leute, ich bin kein PHP-noob aber irgendwie komme ich grade nicht klar mit ner simplen Sache.

    Also in letzter Zeit wird mein Gästebuch ziemlich oft zugespammt, nicht von BOTs, dagegen habe ich bereits ne CAPTCHA programmiert.
    Das Ding ist, ich bekomme viele Beleidigungen reingeschrieben.

    Dafür hab ich mir damals einfach nen Array geschrieben und dort definiert welche Wörter verboten sind.

    $badwordlist = array(
    'arsch' => '<b>****</b>',
    'fick' => '<b>****</b>',
    'fuck' => '<b>****</b>');
    (hab nur nen kleinen Auszug jetzt gezeigt, damit ihr wisst was mich meine.

    So will ich das aber nicht mehr machen. Ich möchte, das ich zwar angebe , welche Wörter noch im Array sind, aber es dann wie folgt abläuft:

    Eintrag wird über Form abgeschickt, Textarea hat den namen $eintragstext

    $eintragstext wird mit dem Array oder eventuell strg_replace abgeglichen bzw durchsucht, ob ein Badword vorkommt.

    Wenn in meinem Gästebucheintrag ein Badword vorhanden war

    einfach:
    exit();

    Ich hoffe ihr versteht was ich meine. ich will nicht immer diese einträge löschen, sondern wenn ein Badword im Text entdeckt wurde, wird abgerbochen und noch irgendwie ne

    echo "Eintrag nicht akzeptiert da es....";

    Ich hoffe jmd kann mir helfen!

    Edit: jacr
    Zweites Post
    ---------------------
    Noch einfacher:

    if Schimpfwort im $eintragstext vorhanden
    exit;

    So irgendwie stelle ich mir das vor



    Beitrag geaendert: 25.5.2007 14:10:47 von jacr
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.

    <?php
    
    $badwords = 'Arsch', 'Ficken';
    
    foreach($badwords as $word)
    {
     if(strpos($eintragstext,$word) == true)
      exit;
    }
    
    ?>

    So, vllt.?


    EDIT: Nur mal so hingetippt, kann sein, dass einige Fehler vorkommen^^

    Beitrag geaendert: 24.4.2007 18:32:29 von benutzernaemelchen
  4. Autor dieses Themas

    h****d

    Ah du bist ein Engel :D
    Ich hab die ganze Zeit versucht, aber gar nicht an = True gedacht.

    Ja, so in der Art könnte es klappen, das versuche ich gleich mal aus

    // EDIT:

    Achja, ne Frage noch. Wenn jetzt zum Beispiel ARSCH auf der Badwortliste steht, und jemand ArSCH schreibt, dann würde das ja nicht geblockt werden

    mit strlolwer alles erst klein koventieren? mit ireplace würds ja noch gehen, aber hab php 4 nicht 5

    Ich will nicht das der GÄstebucheintrag geblockt wird, wenn z.b "warscheinlich" (wARSCHeinlich) drinne is.
    Also, gibt es noch ne Funktion, die groß & kleinschreibung beachtet, und für dsa warscheinlich ding, will ich nicht RegEX oder sowas einsetzte, is mir zuviel Arbeit

    Beitrag geaendert: 24.4.2007 18:36:54 von hirbod
  5. benutzernaemelchen

    Kostenloser Webspace von benutzernaemelchen

    benutzernaemelchen hat kostenlosen Webspace.


    Ah du bist ein Engel :D
    Ich hab die ganze Zeit versucht, aber gar nicht an = True gedacht.

    Ja, so in der Art könnte es klappen, das versuche ich gleich mal aus

    // EDIT:

    Achja, ne Frage noch. Wenn jetzt zum Beispiel ARSCH auf der Badwortliste steht, und jemand ArSCH schreibt, dann würde das ja nicht geblockt werden

    mit strlolwer alles erst klein koventieren? mit ireplace würds ja noch gehen, aber hab php 4 nicht 5

    Ich will nicht das der GÄstebucheintrag geblockt wird, wenn z.b "warscheinlich" (wARSCHeinlich) drinne is.
    Also, gibt es noch ne Funktion, die groß & kleinschreibung beachtet, und für dsa warscheinlich ding, will ich nicht RegEX oder sowas einsetzte, is mir zuviel Arbeit

    Beitrag geaendert: 24.4.2007 18:36:54 von hirbod

    Müsste man jetzt ausprobieren^^

    Aber, wer warscheinlich und nicht wahrscheinlich schreibt, gehört geblockt :D

    strtolower() würde gehen, ich würde eben eine separate Variable machen, in der du den Text dann speicherst.

    Das mir warscheinlich könnte man auch mit einem hinten und vorne angehängten Whitespace lösen, aber das funktioniert einfach nicht immer^^
  6. Autor dieses Themas

    h****d

    das mit wARSCHeinlich habe ich halt geschrieben, weil das so oft vorkam, und ich
    durch meinen Filter halt "w*****lich" stehen hatte und ich will halt nicht, das die Einträge dann geblockt werden.

    Hast vllt nen Codeschnippsel eben für mich, das zumindestes die groß und kleinschreibung nicht beachtet? Könnteste das strlolwer einbauen eben?!

    Beitrag geaendert: 24.4.2007 18:46:37 von hirbod

    Edit jacr
    zweites Post
    ------------------
    so, habs mal eben so getestet:
    <?php
    
    $badwords = 'Arsch', 'Ficken';
    
    foreach($badwords as $word)
    {
     if(strpos($text,$word) == true)
     {
     echo "So geht das aber nicht du";
      exit;
    }
    }
    ?>


    Klappt aber nicht, bekomme aber auch keine Error's


    Beitrag geaendert: 25.5.2007 14:12:31 von jacr
  7. hm... weis nich, ob das sinnvoll ist, und wie clever manche leute sind... aber wenn du, wie du schon vorher gesagt hast, die sachen vergleichst, indem du beides als kleingeschrieben betrachtest, und aber vor und nach deinen badwords jeweils n leerzeichen einfügst... is vllt nich die cleverste methode... aber würde ersteinmal auf dein anliegen passen ;-)

    was anderes wüsste ich auch nich, wie funktioniert denn z.b. die badword funktion der phpbb foren? müsste man ma nachschauen... ob die das nur einfach durch str_replace ersetzen...aber denke ma eher nicht...

    mfg
  8. l*******************t

    Hey,
    kannst ja auch Mal mit der Funktion "ereg ($string, $nach-$string-zudurchsuchender-string)" rumspielen, vll ist die besser.
    "ereg" schaut ob genau der string im anderen vorhanden ist, "eregi" beachtet NICHT Groß- und Kleinschreibung. Und wenn du meinetwegen vor dein Badword "Arsch" ein Leerzeichen hängst, dann sortiert er dir "wahrscheinlich" auch nicht aus - was man übrigens mit "ahr" schreibt - also kommt arsch gar nicht darin vor. Und Arschloch würde er dir auch aussortieren, mit eregi auch wenn alles klein geschrieben wäre.
  9. Autor dieses Themas

    h****d

    ich weiss wie man wahrscheinlich schreibt, nur viele meiner Leute die sich eintragen nicht, und da ich ja in Zukunft es so einstelle das wenn ein Badword vorkommt der komplette Eintrag abgelehnt wird, wollte ich dagegen ne Absicherung

    Selbst mal abgesehen von dem Tippfehlerding das viele machen, Staatsexamen wäre z.B das wort SEX drinne und der würde dsa auch aussortieren, wobei man sex nicht zensieren muss, war nur ein beispiel.

    Hab einiges durchprobiert, klappt aber immer noch nicht..
  10. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!