Folgende Änderungen sind dazu nötig:
Code: Alles auswählen
#
#-----[ OPEN ]-----
#
posting.php
#
#-----[ FIND ]-----
#
include_once($phpbb_root_path . 'common.'.$phpEx);
#
#-----[ AFTER, ADD ]-----
#
$proof_message = ( !empty($HTTP_POST_VARS['message']) ) ? ' '.$HTTP_POST_VARS['message'].' ' : '';
if ($proof_message && file_exists($phpbb_root_path.'includes/spamtext.dat'))
{
$fid = fopen($phpbb_root_path.'includes/spamtext.dat', 'r');
$maltext = '';
while (!feof($fid))
{
$maltext = fgets($fid, 4096);
$maltext = str_replace("\n", '', $maltext);
$maltext = str_replace("\r", '', $maltext);
$proof_message = strtolower($proof_message);
if (strpos($proof_message, $maltext))
{
fclose($fid);
redirect(append_sid("sec_stop.html"));
}
}
fclose($fid);
}
#
#-----[ OPEN]-----
#
language/lang_english/lang_admin.php
#
#-----[ FIND ]-----
#
?>
#
#-----[ BEFORE, ADD ]-----
#
// Spamtext
$lang['Spamtext'] = 'Spamtext';
$lang['Spamtext_explain'] = 'Here you can enter texts which user are not allowed to post.
This will not just replace the text in the post like the word censor, it will completly block the post!
Enter for each single text one line, use RETURN to split the lines.
If a user posts some text with one of the lines you enter here, the script will stop creating the post and/or topic. A good method to block spamming guests ;-)';
#
#-----[ OPEN]-----
#
language/lang_german/lang_admin.php
#
#-----[ FIND ]-----
#
?>
#
#-----[ BEFORE, ADD ]-----
#
// Spamtext
$lang['Spamtext'] = 'Spamtext';
$lang['Spamtext_explain'] = 'Hier kannst Du Texte eingeben, die Benutzer in ihren Beiträgen nicht verwenden dürfen.
Dieses wird nicht lediglich den Text in dem Beitrag ersetzen, wie die Wortzensur, sondern den Beitrag komplett blockieren!
Gib hier für jeden einzelnen Text eine Zeile ein, trenne diese Zeilen mit RETURN.
Wenn ein Benutzer Text mit einem dieser Zeilen postet, wird das Script das Erstellen des Beitrags/Topics unterbinden. Eine gute Methode, um spammende Gäste zu blockieren ;-)';
#
#-----[ SAVE/CLOSE ALL FILES ]-----
#
# EoM
Es kann anstelle dessen aber auch ein message_die() oder exit eingesetzt werden, Hauptsache, das Script wird an dieser Stelle angehalten, um eben die unerwünschten Gast-Beiträge hier zu unterbinden.
$maltext ist als Array definiert, mit dem weitere "Regeln" eingestellt werden können.
In Kürze werde ich die Regelverwaltung aber über eine Datei ermöglichen, die im ACP bearbeitet werden soll.
In Kombination mit dem Guest Control Post MOD ist dieses Snippet eine wirkungsvolle Waffe, unerlaubte/unerwünschte Spam-Posts komplett zu unterbinden. Zur Zeit sind die Poker-Freunde sehr aktiv, daher schon einmal diese vorgegebenen Regeln.
Der Guest Control Post MOD liefert dann bei jedem neuen Gast Post ggf. weitere Regeln, die dann nur einzustellen wären.
Ich hoffe, damit endlich die Flut der bescheuerten Spammer ein wenig eindämmen zu können, bevor mein Topic-Counter noch explodiert...
EDIT 01.09.2006
Den Part in der posting.php ersetzen und schon wird der Inhalt der Datei spamtext.dat für die Regeln verwendet. Diese Datei ist in den Ordner includes/ zu legen.
Die Verwaltung dieser Datei werde ich noch für das ACP erstellen, bis dahin kann diese Datei aber auch noch manuell aktualisiert werden. Besser, als immer die posting.php zu beackern...
EDIT 2
So, ACP-Modul ist nun auch fertig (ein einfaches, aber es ist nützlich) und die Sprachvariablen dazu sind oben ergänzt.
Die Datei spamtext.dat muss dann auch mindestens auf CHMOD 666, sonst kann das ACP-Modul diese Datei nicht schreiben.
EDIT 3
Der Text wird nun komplett in Kleinbuchstaben geprüft. Damit muss man nicht alle Wörter im ACP mit Groß- und Kleinschreibung anlegen.
Dazu einfach die hier im Snippet vorhandene Zeile 25 neu in die posting.php einfügen.
Nun sollen die Spamfreunde mal kommen