Codeschnipsel gegen Forumspammer
Verfasst: 21.02.2007, 17:46
Weil hier heute mal wieder einige Spammer im Forum unterwegs sind, die Ihre Webseite an den Mann/Frau bringen wollen und jedes Unterforum zuspammen. Habe ich hier mal ein Codeschniepsel, womit verhindert wird das ein neuer User Urls posten kann. Ein User muss mindestens X (hier 10) Beiträge geschrieben haben bevor er eine Url posten kann.
Passend für phpbb Version weiß ich nicht. Kann man sicherlich anpassen.
Folgende Datei öffnen includes/functions_post.php
ab ca. Zeile 168 folgenden Code suchen
den alten Code durch diesen hier ersetzen:
Datei speichern und hochladen, fertig.
Nachteil ist, wenn ein neuer User eine Frage zu seiner Domain hat und diese mit angibt, wird nix aus dem Posting. Sollte man den User vielleicht dann vor dem Schreiben darauf hinweisen.
Passend für phpbb Version weiß ich nicht. Kann man sicherlich anpassen.
Folgende Datei öffnen includes/functions_post.php
ab ca. Zeile 168 folgenden Code suchen
Code: Alles auswählen
if ($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost')
{
//
// Flood control
//
$where_sql = ($userdata['user_id'] == ANONYMOUS) ? "poster_ip = '$user_ip'" : 'poster_id = ' . $userdata['user_id'];
$sql = "SELECT MAX(post_time) AS last_post_time
FROM " . POSTS_TABLE . "
WHERE $where_sql";
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval']))
{
message_die(GENERAL_MESSAGE, $lang['Flood_Error']);
}
}
}
}
Code: Alles auswählen
if ($mode == 'newtopic' || $mode == 'reply' || $mode == 'editpost')
{
//
// Flood control
//
$where_sql = ($userdata['user_id'] == ANONYMOUS) ? "poster_ip = '$user_ip'" : 'poster_id = ' . $userdata['user_id'];
$sql = "SELECT MAX(post_time) AS last_post_time
FROM " . POSTS_TABLE . "
WHERE $where_sql";
if ($result = $db->sql_query($sql))
{
if ($row = $db->sql_fetchrow($result))
{
if (intval($row['last_post_time']) > 0 && ($current_time - intval($row['last_post_time'])) < intval($board_config['flood_interval']))
{
message_die(GENERAL_MESSAGE, $lang['Flood_Error']);
}
}
}
//
// check Url spam
//
//Die 10 steht für die Anzahl Postings die ein User braucht bevor er eine URL posten kann.
if($userdata['user_posts'] < 10)
{
$lang['Alert_Spam'] = 'Error: Do Not Spam here!';
if(strstr($post_message, 'http') || strstr($post_message, 'www.'))
{
message_die(GENERAL_MESSAGE, $lang['Alert_Spam']);
}
}
}
Nachteil ist, wenn ein neuer User eine Frage zu seiner Domain hat und diese mit angibt, wird nix aus dem Posting. Sollte man den User vielleicht dann vor dem Schreiben darauf hinweisen.
