پلاگین جلو گیری از بزرگ نوشتن در چت

رزرو تبلیغــات

تعرفه تبلیغات
logo
تعرفه تبلیغات تعرفه تبلیغات

شمـا میتوانیــد برای دریافت آخرین مطالب و آگاهی از آخریـن اخبــار گلریـز وبـــ در ایمیـــل خـود در خبــرنامـه ثـبت نـام کنــید

extx

چند روزی هست ک یک روش و یک کد اومده کاربر های مزاحم با استفاده از تمبر دیتا میان متنی که می خوان ارسال کنن رو بزرگ می کنن و باعث میشه چت روم هنگ کنه و به نوعی کاربر اذیت بشن برای همین این جلوگیر گذاشتم

 

دوستانی که میان از ما پلاگین میبرن لطفا این سایتو به اشنا های خود معرفی کنن !  ممنون

این کد زیرا در public_html/class/MessageInserter.class جایگذین کنید تمومه !

<?php /** * Class MessageInserter, insert system and user messages into DB and transform it if needed * * LICENSE: CREATIVE COMMONS PUBLIC LICENSE  “Namensnennung — Nicht-kommerziell 2.0″ * * @copyright  2009 <SEDesign /> * @license    http://creativecommons.org/licenses/by-nc/2.0/de/ * @version    $3.0.6$ * @link       http://www.sedesign.de/de_produkte_chat-v3.html * @since      File available since Alpha 1.0 */

class MessageInserter extends EtChatConfig { /** * DB-Connection Obj * @var ConnectDB */ private $dbObj;

/** * Status var only needed for information if the user will be inserted into blacklist because of spam * @var String */ public $status;

/** * Constructor * * @param  ConnectDB $dbObj, Obj with the db connection handler * @param  Array $raum_array * @uses ConnectDB::sqlSet() * @return void */ public function __construct ($dbObj, $raum_array){

// call parent Constructor from class EtChatConfig parent::__construct();

$this->dbObj=$dbObj;

// message after room entrance if ($_POST['roomchange']==”true” && !empty($raum_array[0][3])){ // line break WIN $room_message_insert = str_replace(“\r\n”,”<br />”,$raum_array[0][3]); // line break LIN, Uniux, MacOS $room_message_insert = str_replace(“\n”,”<br />”,$room_message_insert);

new SysMessage($this->dbObj, “<br /><div style=\”margin: 4px;\”>”.$room_message_insert.”<div>”,(int)$_POST['room'],$_SESSION['etchat_'.$this->_prefix.'user_id']); }

if (isset($_POST['sysmess'])){

// spam test to prevent hacking over Live HTTP Headrs (since v307 beta 7) if ($this->spamTester()) { $this->status = “spam”; return false; }

$_POST['message'] = htmlspecialchars($_POST['message'], ENT_QUOTES, “UTF-8″); $_POST['message'] = “<b>”.$_SESSION['etchat_'.$this->_prefix.'username'].”</b> “.$_POST['message'];

// do not create a visible room entrance message if the user is invisible, just make the message as a private one if ($_POST['roomchange']==”true” && $_SESSION['etchat_'.$this->_prefix.'userstatus']==”status_invisible”) $_POST['privat']=$_SESSION['etchat_'.$this->_prefix.'user_id']; else{ // to prevent hacking (since v307 beta 7) if($_POST['privat']>0) $_POST['privat']=$_SESSION['etchat_'.$this->_prefix.'user_id']; }

new SysMessage($this->dbObj, $_POST['message'],(int)$_POST['room'],(int)$_POST['privat']); } else{

// spam test if ($this->spamTester()) { $this->status = “spam”; return false; }

// transforms the $_POST['message'] before inserting it $this->messageTransformer();

// Filter CSS-Parameter of the message to prevent CSS or other injections. $_POST['color'] = substr($_POST['color'], 0, 7); $_POST['bold'] = substr($_POST['bold'], 0, 6); $_POST['italic'] = substr($_POST['italic'], 0, 6);

// message style parameters $style = “color:”.htmlentities($_POST['color'], ENT_QUOTES, “UTF-8″).”;font-weight:”.htmlentities($_POST['bold'], ENT_QUOTES, “UTF-8″).”;font-size: 6px”.htmlentities($_POST['italic'], ENT_QUOTES, “UTF-8″).”;”;

// inserts the user message into the DB $this->dbObj->sqlSet(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid, etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat, etchat_user_ip) VALUES ( ‘”.$_SESSION['etchat_'.$this->_prefix.'user_id'].”‘, ‘”.$_POST['message'].”‘, ‘”.$style.”‘, “.date(‘U’).”, “.(int)$_POST['room'].”, “.(int)$_POST['privat'].”, ‘”.$_SERVER['REMOTE_ADDR'].”‘)”);

// BOT ——————————————- /* if (substr($_POST['message'], 0, 5)==”.time”){ $db->sql(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid , etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat) VALUES ( 1, ‘”.date(‘d.m.Y – H:i’).”‘, ‘color:#”.$_SESSION['etchat_'.$this->_prefix.'syscolor'].”;font-weight:normal;font-style:normal;’, “.date(‘U’).”, “.(int)$_POST['room'].”, 0)”, false); } if (substr($_POST['message'], 0, 8)==”.version”){ $db->sql(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid , etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat) VALUES ( 1, ‘ET-Chat v3.0.5′, ‘color:#”.$_SESSION['etchat_'.$this->_prefix.'syscolor'].”;font-weight:normal;font-style:normal;’, “.date(‘U’).”, “.(int)$_POST['room'].”, 0)”, false); } if (substr($_POST['message'], 0, 1)==”/”){ $db->sql(“INSERT INTO {$this->_prefix}etchat_messages ( etchat_user_fid , etchat_text, etchat_text_css, etchat_timestamp, etchat_fid_room, etchat_privat) VALUES ( 1, ‘IRC Befehle werden hier nicht unterstützt. Alle Einstellungen kِnnen stattdessen in Menues bequemm eingestellt werden.’, ‘color:#”.$_SESSION['etchat_'.$this->_prefix.'syscolor'].”;font-weight:normal;font-style:normal;’, “.date(‘U’).”, “.(int)$_POST['room'].”, 0)”, false); } */ //——————————– } }

/** * Transforms the message * * @return void */ private function messageTransformer(){ $_POST['message'] =    substr($_POST['message'], 0, 1000); if (strlen($_POST['message'])>999) $_POST['message'] .=”…”;

$woerter_array=explode(” “,$_POST['message']); foreach($woerter_array as $wort){ if (strlen($wort)>50 && substr($wort, 0, 7)!=”http://” && substr($wort, 0, 8)!=”https://” && substr($wort, 0, 6)!=”ftp://” && stripos($wort, ‘]http://’)===false){ $new_wort = wordwrap( $wort, 50, ” “, 1); $_POST['message'] = str_replace($wort, $new_wort, $_POST['message']); } } $_POST['message'] = htmlspecialchars(str_replace(“\\”,”\\\\”,$_POST['message']), ENT_QUOTES, “UTF-8″); }

/** * Test if the message is a spam, warns the user and insert him into the blacklist if needed * * @uses LangXml object creation * @uses LangXml::getLang() parser method * @uses Blacklist object creation * @uses Blacklist::userInBlacklist() checks if in the Blacklist * @uses Blacklist::insertUser() * @uses Blacklist::allowedToAndSetCookie() * @uses Blacklist::killUserSession() * @return bool */ private function spamTester(){

$_SESSION['etchat_'.$this->_prefix.'spam'][]=date(‘U’);

// do not overload the session array in the case of server performanse, so clear it every 200 entries if (count($_SESSION['etchat_'.$this->_prefix.'spam'])>200) { unset($_SESSION['etchat_'.$this->_prefix.'spam']); $_SESSION['etchat_'.$this->_prefix.'spam']=array(); }

// 3 messages one after another are allowed, excepting ADMIN/MOD if (count($_SESSION['etchat_'.$this->_prefix.'spam'])>3 && $_SESSION['etchat_'.$this->_prefix.'user_priv']!=”admin” && $_SESSION['etchat_'.$this->_prefix.'user_priv']!=”mod”){

$spam_interval=($_SESSION['etchat_'.$this->_prefix.'spam'][(count($_SESSION['etchat_'.$this->_prefix.'spam'])-1)] – $_SESSION['etchat_'.$this->_prefix.'spam'][(count($_SESSION['etchat_'.$this->_prefix.'spam'])-4)]);

if ($spam_interval < 6 ){ // create new LangXml Object $langObj = new LangXml(); $lang=$langObj->getLang()->reloader_php[0]; new SysMessage($this->dbObj, $lang->spam[0]->tagData,(int)$_POST['room'],(int)$_SESSION['etchat_'.$this->_prefix.'user_id']);

$_SESSION['etchat_'.$this->_prefix.'spam_warn']++;

if ($_SESSION['etchat_'.$this->_prefix.'spam_warn']>2){ // create new Blacklist Object $blObj = new Blacklist($this->dbObj); $blObj->insertUser($_SESSION['etchat_'.$this->_prefix.'user_id'],300); $blObj->userInBlacklist(); $blObj->allowedToAndSetCookie(); $blObj->killUserSession(); return true; } else return false; } }

}

}


طراحی چت روم


بازدید : 14937 | تاریخ : شنبه 22 / 5 / 1392 ساعت : 22:4 |
نظرات
عبدالله
عبدالله در تاریخ 1392/5/29/s1i2n3a4 و 15:29 گفته :
ب نظر شما کسی میتونه اینا رو بنویسه که شما گذاشتید خوب حداقل میذاشتید تو ی فایل که بتونیم دانلودش کنیم اینا هم نمیشه اینا رو برداشت
برای دیدن نظرات بیشتر روی شماره صفحات در زیر کلیک کنید
نام
آدرس ایمیل
وب سایت/بلاگ
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

آپلود عکس دلخواه: