@set_error_handler("handleError"); } $browserId = getId(USER_ID_LENGTH); define("SESSION", getSessionId()); if (empty($CONFIG["gl_om_pop_up"]) && $CONFIG["gl_om_mode"] == 1) { initData(array("INTERNAL", "GROUPS", "FILTERS")); $groupbuilder = new GroupBuilder($INTERNAL, $GROUPS, $CONFIG); $groupbuilder->Generate(); if (!$groupbuilder->GroupAvailable) { exit("<html><script language=\"JavaScript\">if(typeof(window.opener != null) != 'undefined')window.opener.location = \"" . $CONFIG["gl_om_http"] . "\";window.close();</script></html>"); } } else { initData(array("FILTERS")); } if (isset($_POST["company"]) && !empty($_POST["company"]) || isset($_POST["email"]) && !empty($_POST["email"]) || isset($_POST["name"]) && !empty($_POST["name"]) || isset($_POST["text"]) && !empty($_POST["text"])) { exit(createFloodFilter(getIP(), null)); } } header("Content-Type: text/html; charset=utf-8"); if (!isset($_GET[GET_EXTERN_TEMPLATE])) { define("IS_FLOOD", isFlood(getIP(), null, true)); define("IS_FILTERED", $FILTERS->Match(getIP(), formLanguages(!empty($_SERVER["HTTP_ACCEPT_LANGUAGE"]) ? $_SERVER["HTTP_ACCEPT_LANGUAGE"] : ""), SESSION, true)); require LIVEZILLA_PATH . "_lib/trdp/mobde.php"; $MobileDetect = new Mobile_Detect(); $small = $MobileDetect->isMobile() && !$MobileDetect->isTablet(); initData(array("INTERNAL")); $html = getFile(TEMPLATE_HTML_CHAT); $html = str_replace("<!--extern_script-->", getFile(TEMPLATE_SCRIPT_EXTERN) . getFile(TEMPLATE_SCRIPT_DATA) . getFile(TEMPLATE_SCRIPT_CHAT) . getFile(TEMPLATE_SCRIPT_FRAME), $html); $html = str_replace("<!--server_id-->", substr(md5($CONFIG["gl_lzid"]), 5, 5), $html); $html = str_replace("<!--connector_script-->", getFile(TEMPLATE_SCRIPT_CONNECTOR), $html); $html = str_replace("<!--group_script-->", getFile(TEMPLATE_SCRIPT_GROUPS), $html);
function isFlood($_ip, $_userId) { global $CONFIG; if (empty($CONFIG["gl_atflt"])) { return false; } $sql = "SELECT * FROM `" . DB_PREFIX . DATABASE_VISITORS . "` AS `t1` INNER JOIN `" . DB_PREFIX . DATABASE_VISITOR_BROWSERS . "` AS t2 ON t1.id=t2.visitor_id WHERE t1.`ip`='" . DBManager::RealEscape($_ip) . "' AND `t2`.`created`>" . (time() - FLOOD_PROTECTION_TIME) . " AND `t1`.`visit_latest`=1"; if ($result = queryDB(true, $sql)) { } if (DBManager::GetRowCount($result) >= FLOOD_PROTECTION_SESSIONS) { createFloodFilter($_ip, $_userId); return true; } return false; }
function isFlood($_ip, $_userId, $_chat = false) { global $VISITOR, $FILTERS, $CONFIG; if (empty($CONFIG["gl_atflt"])) { return false; } $sql = "SELECT * FROM `" . DB_PREFIX . DATABASE_VISITORS . "` AS `t1` INNER JOIN `" . DB_PREFIX . DATABASE_VISITOR_BROWSERS . "` AS t2 ON t1.id=t2.visitor_id WHERE t1.`ip`='" . @mysql_real_escape_string($_ip) . "' AND `t2`.`created`>" . (time() - FLOOD_PROTECTION_TIME) . " AND `t1`.`visit_latest`=1"; if ($result = queryDB(true, $sql)) { } if (@mysql_num_rows($result) >= FLOOD_PROTECTION_SESSIONS) { createFloodFilter($_ip, $_userId); return true; } return false; }
function isFlood() { global $VISITOR, $FILTERS, $CONFIG; if (isnull($CONFIG["gl_atflt"])) { return false; } if (!isset($VISITOR)) { getData(false, false, true, false); } $myurls = ""; $count = 0; $files = getDirectory(PATH_DATA_EXTERNAL, "."); foreach ($VISITOR as $visitor) { if (isnull($visitor->ExternalStatic)) { $visitor->LoadStaticInformation(); $visitor->ExternalStatic->Load(); if ($visitor->ExternalStatic->IP == getIP()) { foreach ($visitor->Browsers as $browser) { $browser->Load(); if (!is_array($browser->History)) { continue; } foreach ($browser->History as $key => $value) { $myurls .= "\r\n(" . $browser->FirstActive . ") " . $value[1] . "\r"; } if ($browser->FirstActive > time() - FLOOD_PROTECTION_TIME) { if (++$count >= FLOOD_PROTECTION_SESSIONS) { createFloodFilter($visitor->ExternalStatic->IP, $visitor->UserId); return true; } } } } } } return false; }