$verbot = array
(
"<a href=" ,
"Viagra" ,
"[url" ,
);$cuss = 0;
Wofür steht "cuss"? Der Name einer Variable sollte etwas über ihre Bedeutung aussagen. Abkürzungen sind in den meisten Fällen zu vermeiden.
foreach ($verbot as $v)
Siehe oben. (was ist "v"? "value"?)
Falls du vorhast, dich ernsthafter mit PHP und dem Programmieren zu beschäftigen, solltest du deinen Variablen englische Bezeichnungen geben.
$cuss = $cuss + 1;
Besser: ++$cuss; Tut das gleiche.
if (!preg_match("/$v/i", $eintrag))
{
$cuss = $cuss + 0;
}
das hättest du dir auch ganz sparen können ;)
}
> Später prüfe ich dann, ob $cuss > 1, was zur Ablehnung des Eintrages führt.
>
> Irgendwie bekomme ich jetzt aber neuerdings die Fehlermeldung:
> "Warning: preg\_match() [function.preg-match]: Compilation failed: missing terminating ] for character class at offset 4 ...", obwohl ich eigentlich nichts - zumindest nicht bewusst - an dem Script geändert habe.
Dann war es ein Geist. Aber die Meldung sagt doch alles. "missing terminating ]" - aha, es fehlt ein schließendes "]". "[" und "]" werden angegeben um Zeichenklassen zu beschreiben. "[a-z]" sind z.B. alle Buchstaben von "a" bis "z". Und warum fehlt jetzt ein "]"? Na weil in deinem Array der vierte Eintrag ein "[" enthält. ("[url")
Folglich musst du dieses "[" mit einem vorangestellen Backslash maskieren.