هاست لینوکس

آخرین بسته‌ی MyBB: نسخه‌ی 1.8.27 MyBB منتشر شد


امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل با فیلتر کلمات
#1
با سلام
دوستان من وقتی کلمه ای رو میزنم و به جاش چیزی رو جایگزین میکنم یا ستاره میزنم هیچ تغییری نمیکنه و اصل کلمه رو نشون میده!!!


دلیل کار نکردن فیلتر چیه!؟ Huh
#2
واسه منم حتما باید کلمه فیلتر شده تنهای تنها توی ارسال نوشته بشه تا فیلتر شه، حتی اگه یه کلمه با هزارتا فاصله هم قبل یا بعدش باشه دیگه کار نمیکنه!Huh
[تصویر:  1293436101.gif]
#3
کسی جواب مارو نمیده؟!
#4
درود شاید به گفت این تنها مشکلی است که مدیران مای بی بی هنوز آن را حل نکرده اند ولی با روش زیر قابل حل می باشد.

1- فایل inc/class_parser.php را باز کنید.

خط زیر رو پیدا کنید:
کد:
function parse_badwords

و در اون خط این کد رو پیدا کنید:

کد:
$message = preg_replace

و خط فوق را به شکل زیر تغییر بدید.

کد:
$message = preg_replace("#(^|\b|\s)".$badword['badword']."($|\b|\s)#i", "\\1".$badword['replacement']."\\2", $message);

پیروز باشید.
 سپاس شده توسطgartal (۱۳۸۹/۱/۲۵، ۱۶:۳۴:۳۱ عصر) ، Pars (۱۳۸۹/۱/۲۵، ۱۶:۳۶:۵۴ عصر) ، Webmaster (۱۳۸۹/۱/۲۵، ۱۷:۱۱:۴۱ عصر) ، ZEUS (۱۳۸۹/۱/۲۵، ۱۷:۳۶:۲۹ عصر) ، ZUNKED (۱۳۸۹/۱/۲۵، ۲۲:۰۵:۲۱ عصر)
#5
با سلام
چرا این فیلتر کلمه تو نام کاربری کار نمیکنه؟
در ضمن من نتونستم با توجه به تغییراتی که کوین جان فرمودند عمل کنم چون فایل مورد نظر شامل این کده و مشابه اونی که نوشتند نیست راهنماییم کنید
کد:
function parse_badwords($message, $options=array())
    {
        if($this->badwords_cache == 0)
        {
            $this->cache_badwords();
        }
        if(is_array($this->badwords_cache))
        {
            reset($this->badwords_cache);
            foreach($this->badwords_cache as $bid => $badword)
            {
                if(!$badword['replacement'])
                {
                    $badword['replacement'] = "*****";
                }
                $badword['badword'] = preg_quote($badword['badword']);
                $message = preg_replace("#(\b|^)".$badword['badword']."(\b|$)#i", "\\1".$badword['replacement']."\\2", $message);
            }
        }
        if($options['strip_tags'] == 1)
        {
            $message = strip_tags($message);
        }
        return $message;
    }
در ضمن من خود فایل رو هم میگذارم ممنون میشم کمکم کنید


فایل‌(های) پیوست شده
.php   class_parser.php (اندازه: 31.26 KB / تعداد دفعات دریافت: 0)
#6
من هم این کلمات را در ان خط پیدا نکردم ولی در جاهای دیگر بود ولی تغییر ندارم لطفا یک بار دیگر بررسی کنید و ما را راهنمایی کنید
 سپاس شده توسطشماره مجازی (۱۴۰۱/۸/۲۶، ۰۱:۵۷:۵۶ صبح) ، گراف مسنجر (۱۴۰۱/۱۰/۳، ۰۴:۱۹:۴۲ صبح) ، چارتر ۴۲۴ (۱۴۰۲/۹/۱۲، ۱۵:۲۳:۱۹ عصر)


پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان