Gesperrte Wörter vor dem Posten abfangen

In diesem moderierten Forum werden Code-Schnipsel, die zu klein sind, um richtige Mods zu sein, abgelegt.
Bei Fragen oder Problemen benutze bitte das Forum phpBB 2.0: Mod Support.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.0, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Gesperrte Wörter vor dem Posten abfangen

Beitrag von PhilippK »

Beschreibung: Mit diesem Snippet werden gesperrte Wörter beim Posten mit einer Fehlermeldung abgefangen
phpBB Version: 2.0.x

In der privmsgs.php suchen:

Code: Alles auswählen

      if ( !empty($HTTP_POST_VARS['message']) ) 
      { 
und danach einfügen:

Code: Alles auswählen

         $sql = "SELECT word 
            FROM  " . WORDS_TABLE; 
         if ($result = $db->sql_query($sql)) 
         { 
            if ($row = $db->sql_fetchrow($result)) 
            { 
               do 
               { 
                  if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $HTTP_POST_VARS['message'])) 
                  { 
                     $error = TRUE; 
                     $error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['censored_word']; 
                     break; // Exit do...while 
                  } 
               } 
               while ($row = $db->sql_fetchrow($result)); 
            } 
         } 
         $db->sql_freeresult($result);
In der posting.php nach

Code: Alles auswählen

         prepare_post($mode, $post_data, $bbcode_on, $html_on, $smilies_on, $error_msg, $username, $bbcode_uid, $subject, $message, $poll_title, $poll_options, $poll_length);
suchen und davor

Code: Alles auswählen

         $sql = "SELECT word 
            FROM  " . WORDS_TABLE; 
         if ($result = $db->sql_query($sql)) 
         { 
            if ($row = $db->sql_fetchrow($result)) 
            { 
               do 
               { 
                  if (preg_match("#\b(" . str_replace("\*", ".*?", phpbb_preg_quote($row['word'], '#')) . ")\b#i", $HTTP_POST_VARS['message'])) 
                  { 
                     $error = TRUE; 
                     $error_msg .= ( ( !empty($error_msg) ) ? '<br />' : '' ) . $lang['censored_word']; 
                     break; // Exit do...while 
                  } 
               } 
               while ($row = $db->sql_fetchrow($result)); 
            } 
         } 
         $db->sql_freeresult($result);
einfügen.

Zuletzt noch in der ./language/lang_german/lang_main.php nach

Code: Alles auswählen

$lang['No_vote_option'] = 'Du musst eine Auswahl treffen, um abzustimmen.';
einfügen:

Code: Alles auswählen

$lang['censored_word'] = 'Der Beitrag enthält unzulässige Wörter.';
und in der ./language/lang_english/lang_main.php nach

Code: Alles auswählen

$lang['No_vote_option'] = 'You must specify an option when voting.';
einfügen

Code: Alles auswählen

$lang['censored_word'] = 'The topic contains forbidden words';
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
Antworten

Zurück zu „phpBB 2.0: Snippets“