Seite 1 von 1

Gesperrte Wörter vor dem Posten abfangen

Verfasst: 10.09.2004 23:02
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';