strpos klappt nicht!
AbBa
- php
1 Sven Rautenberg0 bleicher
0 Tom
Ich wollte mal einen kleinen *Chat* in Php aufbauen,
Es klappt alles ganz gut, bis auf die bösen Wörter.
Deswegen hab ich mich in Google erkundigt, und hab die Funktion
strpos gefunden. Aber irgendwie will es nicht ganz hinhauen.
Hier mal mein Code:
-------
<?php
$Beleidig = "Unterdrückt";
$pos = strpos($Chatmessage, $Beleidig);
if ($pos === true) {
header('Location: Error.php?Us=".$Usr."');
} else {
$Beleidig1 = "Unterdrückt";
$pos3 = strpos($Chatmessage, $Beleidig1);
if ($pos3 === true) {
header('Location: Error.php?Us=".$Usr."');
} else {
$Beleidig2 = "Unterdrückt";
$pos1 = strpos($Chatmessage, $Beleidig2);
if ($pos1 === true) {
header('Location: Error.php?Us=".$Usr."');
} else {
$Beleidig3 = "Unterdrückt";
$pos2 = strpos($Chatmessage, $Beleidig3);
if ($pos2 === true) {
header('Location: Error.php?Us=".$Usr."');
} else {
$a1 = "Chat Inner.html";
$a2 = fopen($a1, "a+");
fwrite($a2, $Usr." schrieb: ".$Chatmessage."<br>");
fclose ($a2);
}
}
}
}
?>
-------
An $Chatmessage oder $Usr liegts nicht...
Diese werden bei Chatouter.php in Form action bestimmt.
Denn es wird wirklich in die Chatbox was reingeschrieben,
leider halt auch die Beleidigungen.
P.S.: hab die beleidigungen als "Unterdrückt" angezeigt :D
Moin!
Ich wollte mal einen kleinen *Chat* in Php aufbauen,
Es klappt alles ganz gut, bis auf die bösen Wörter.
Wenn jemand im Chat böse Wörter verwendet, sollte der Admin ihn sperren und rauswerfen.
Alle Versuche, maschinell was dagegen zu tun, enden nur damit, dass die User sich einen Spaß draus machen, die Sperren zu umgehen. Soviele Wörter kannst du gar nicht sperren, dass da nicht deutlich zuviel bei draufgeht.
Nur mal angenommen, du würdest "sex" sperren wollen, und suchst nach diesem Bestandteil. Was ist mit "Staatsexamen"? "Sextant"? Und so weiter...
- Sven Rautenberg
Grüße,
jo so h.arsch es klingen mag, der johny depp hat es schwer im chat - sc.hure.n sich die schafe drum ;)
MFG
bleicher
Hello,
Ich wollte mal einen kleinen *Chat* in Php aufbauen,
Es klappt alles ganz gut, bis auf die bösen Wörter.
Deswegen hab ich mich in Google erkundigt, und hab die Funktion
strpos gefunden. Aber irgendwie will es nicht ganz hinhauen.
Hier mal mein Code:
<?php
$Beleidig = "Unterdrückt";
$pos = strpos($Chatmessage, $Beleidig);
if (($pos !== false) and ($pos >= 0)) ## Wenn die Beleidigung enthalten ist,
{
header('Location: Error.php?Us=".$Usr."'); ## dann leite um
}
strpos() wird niemals === true werden.
strpos() kann === false werden, wenn der gesuchte String nicht im Text enthalten ist
strpos() ist 0, was gleichbedeutend mit false sein kann, wenn der gesuchte String
am Anfang des Textes steht, eben auf Position 0
strpos() ist größer 0, wenn der wenn der gesuchte String
weiter hinten im Text steht
0 ist aber nicht identisch false, warum man auf "!== false" abfragt.
Nur wenn strpos() identisch false ist, ist der gesuchte String nicht im Text enthalten.
Das steht aber auch alles im Handbuch
http://de.php.net/manual/de/function.strpos.php
Harzliche Grüße vom Berg
http://bergpost.annerschbarrich.de
Tom