Probleme mit Array (PHP)
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
arsch
beispiel
beitrag
damal
dingen
dsa
eintrag
exit
ficken
fragen
funktion
gedacht
gro kleinschreibung
gstebuch
klappe
kleinschreibung
lsen
staatsexamen
versuchen
zuviel
-
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 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
<?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 -
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 -
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^^ -
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 -
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 -
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. -
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.. -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage