Файл: core/core.php
Строк: 485
<?
$timer = microtime(true);
session_start();
require("config.php");
#---------------------------------------------------------Установка соединения с БД---------------------------------------------------------#
if (@!mysql_connect($dbserver, $dbuser, $dbpassword)) {
?>
<html>
<head>
<title>Sraka</title>
<meta charset='utf-8'>
</head>
<body>
<div style="padding:3px;background-color:#e7f1fe;margin:0px auto;max-width:600px;border: 1px dotted #abbefb;">
<h1>sraka - временно недоступен.</h1>
В течении часа работа сайта будет полностью возобновлена.<br />
Приносим свои извинения за доставленные неудобства.
<p align="right"> Администрация (Тех.поддержка)</p>
</div>
</body>
</html>
<?
exit;
}
#---------------------------------------Если соединились, то теперь выбираем базу данных----------------------------------------#
if (!mysql_select_db($db)) {
?>
<html>
<head>
<title>SrAkA</title>
<meta charset='utf-8'>
</head>
<body>
<div style="padding:3px;background-color:#e7f1fe;margin:0px auto;max-width:600px;border: 1px dotted #abbefb;">
<h1>sraka - временно недоступен.</h1>
В течении часа работа сайта будет полностью возобновлена.<br />
Приносим свои извинения за доставленные неудобства.
<p align="right"> Администрация ->(Тех.поддержка)</p>
</div>
</body>
</html>
<?
exit;
}
mysql_query("SET NAMES utf8");
//----------------------------------Сессия----------------------------------//
if (isset($_SESSION['login']) && isset($_SESSION['pass'])) {
$login = mysql_real_escape_string($_SESSION['login']);
$pass = mysql_real_escape_string($_SESSION['pass']);
} else {
if (isset($_COOKIE['clogin']) && isset($_COOKIE['cpass'])) {
$login = mysql_real_escape_string($_COOKIE['clogin']);
$_SESSION['login'] = $login;
$pass = md5(mysql_real_escape_string($_COOKIE['cpass']));
$_SESSION['pass'] = $pass;
}
}
if (@$login && $pass) {
$login = check($login);
$req = mysql_query("SELECT * FROM `users` WHERE `login` = '$login' LIMIT 1");
if (mysql_num_rows($req)) {
$u = mysql_fetch_assoc($req);
if ($pass === $u['pass']) {
//~~~~~~~~~~~~~~~~~Если пароль не совпадает, уничтожаем переменные сессии и чистим куки~~~~~~~~~~~~~~~~//
} else {
unset($_SESSION['login']);
unset($_SESSION['pass']);
setcookie('clogin', '');
setcookie('cpass', '');
$login = false;
$pass = false;
}
//~~~~~~~~~~~~~~~~~Если юзер не найден, уничтожаем переменные сессии и чистим куки~~~~~~~~~~~~~~~~//
} else {
unset($_SESSION['login']);
unset($_SESSION['pass']);
setcookie('clogin', '');
setcookie('cpass', '');
$login = false;
$pass = false;
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Функция бан, выводит ник того кто забанил~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
function ban($id) {
$req = mysql_query("SELECT * FROM `users_ban_post` WHERE `user` = '" . $id . "' ORDER BY `time_ban` DESC LIMIT 1");
@$res = mysql_fetch_assoc($req);
if ($res['time_ban'] > time())
return true;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Показ ошибок~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
function error($text) {
echo '<div class = "error">' . $text . '</div>';
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Показ уведомлений~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
function ok($text) {
echo '<div class = "ok">' . $text . '</div>';
}
//------------------------------Иконки пользователей (онлайн,офлайн)------------------------------//
function ico($sex, $admin, $online) {
$icon = '';
if ($online > (time() - 1800)) {
if ($admin == 0) {
if ($sex == 'm')
$icon = '<img src = "/style/users/man_on.png">'; else
$icon = '<img src = "/style/users/woman_on.png">';
}
if ($admin == 1) {
if ($sex == 'm')
$icon = '<img src = "/style/users/admin_man_on.png">'; else
$icon = '<img src = "/style/users/admin_woman_on.png">';
}
if ($admin == 2) {
if ($sex == 'm')
$icon = '<img src = "/style/users/admin_man_on.png">'; else
$icon = '<img src = "/style/users/admin_woman_on.png">';
}
if ($admin == 3) {
if ($sex == 'm')
$icon = '<img src = "/style/users/mod_man_on.png">'; else
$icon = '<img src = "/style/users/mod_woman_on.png">';
}
if ($admin == 4) {
if ($sex == 'm')
$icon = '<img src = "/style/users/mod_man_on.png">'; else
$icon = '<img src = "/style/users/mod_woman_on.png">';
}
if ($admin == 5) {
if ($sex == 'm')
$icon = '<img src = "/style/users/mod_man_on.png">'; else
$icon = '<img src = "/style/users/mod_woman_on.png">';
}
}
else {
if ($admin == 0) {
if ($sex == 'm')
$icon = '<img src = "/style/users/man_off.png">'; else
$icon = '<img src = "/style/users/woman_off.png">';
}
if ($admin == 1) {
if ($sex == 'm')
$icon = '<img src = "/style/users/admin_man_off.png">'; else
$icon = '<img src = "/style/users/admin_woman_off.png">';
}
if ($admin == 2) {
if ($sex == 'm')
$icon = '<img src = "/style/users/admin_man_off.png">'; else
$icon = '<img src = "/style/users/admin_woman_off.png">';
}
if ($admin == 3) {
if ($sex == 'm')
$icon = '<img src = "/style/users/mod_man_off.png">'; else
$icon = '<img src = "/style/users/mod_woman_off.png">';
}
if ($admin == 4) {
if ($sex == 'm')
$icon = '<img src = "/style/users/mod_man_off.png">'; else
$icon = '<img src = "/style/users/mod_woman_off.png">';
}
if ($admin == 5) {
if ($sex == 'm')
$icon = '<img src = "/style/users/mod_man_off.png">'; else
$icon = '<img src = "/style/users/mod_woman_of.png">';
}
}
return $icon;
}
//------------------------------Выводим медальки за рейтинг------------------------------//
function medal($rating) {
if ($rating >= 1000 && $rating <= 1999)
echo "</а> <img src='/style/medals/b.png' alt='b' />n";
if ($rating >= 2000 && $rating <= 2999)
echo "</а> <img src='/style/medals/s.png' alt='s' />n";
if ($rating >= 3000)
echo "</а> <img src='/style/medals/z.png' alt='z' />n";
return false;
}
//-----------------------------Функция выводит тортик-------------------------------//
function cake($cake) {
if($cake == 1){
echo "</а> <img src='/style/page/cake.gif' />n";
}
return false;
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Вывод страниц~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
function navigation($page, $total, $link) {
// Проверяем нужна ли стрелка назад
$nazpage = ($page != 1) ? '<a href= "' . $link . 'page=' . ($page - 1) . '"><< <u>Предыдущая</u></a>' : '';
// Проверяем нужна ли стрелка вперед
$nextpage = ($page != $total) ? '<a href= "' . $link . 'page=' . ($page + 1) . '"><u>Следующая</u> >></a>' : '';
// Первая страница
$pervpage = ($page != 1) ? ' <a href= "' . $link . 'page=1" class="next">1</a>' : '';
// Последняя страница
$endpage = ($page != $total) ? ' <a href= "' . $link . 'page=' . $total . '" class="next">' . $total . '</a>' : '';
// Находим 4 ближайшие станицы слева, если они есть
$page4left = ($page - 4 > 0) ? ' <a href= "' . $link . 'page=' . ($page - 4) . '" class="next">' . ($page - 4) . '</a>' : false;
$page3left = ($page - 3 > 0) ? ' <a href= "' . $link . 'page=' . ($page - 3) . '" class="next">' . ($page - 3) . '</a>' : false;
$page2left = ($page - 2 > 0) ? ' <a href= "' . $link . 'page=' . ($page - 2) . '" class="next">' . ($page - 2) . '</a> ' : false;
$page1left = ($page - 1 > 0) ? ' <a href= "' . $link . 'page=' . ($page - 1) . '" class="next">' . ($page - 1) . '</a> ' : false;
// Находим 4 ближайшие станицы справа, если они есть
$page4right = ($page + 4 <= $total) ? ' <a href= "' . $link . 'page=' . ($page + 4) . '" class="next">' . ($page + 4) . '</a>' : false;
$page3right = ($page + 3 <= $total) ? ' <a href= "' . $link . 'page=' . ($page + 3) . '" class="next">' . ($page + 3) . '</a>' : false;
$page2right = ($page + 2 <= $total) ? ' <a href= "' . $link . 'page=' . ($page + 2) . '" class="next">' . ($page + 2) . '</a>' : false;
$page1right = ($page + 1 <= $total) ? ' <a href= "' . $link . 'page=' . ($page + 1) . '" class="next">' . ($page + 1) . '</a>' : false;
// Вывод навигации
if ($page != $total || $page - 1 > 0) {
// Назад | Вперёд (стрелки)
echo '<div class = "menu">' . $nazpage . '';
if ($nazpage & $nextpage)
echo ' | ';
echo '' . $nextpage . ' <br /><br/>';
echo 'Страницы: </a>';
//Нужны ли .. слева
if ($page4left)
echo $pervpage . '...';
//Страницы
echo $page3left . $page2left . $page1left . '<l><b>' . $page . '</b></l>' . $page1right . $page2right . $page3right;
//Нужны ли .. справа
if ($page4right)
echo '...' . $endpage;
echo '</div>';
}
}
//-----------------------------Функция login для информации-------------------------------//
function login($id){ $id = abs(intval($id)); $login = @mysql_result(mysql_query("SELECT `login` FROM `users` WHERE `id` = '$id'"), 0); return $login; }
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Вывод времени~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
function vremya_ban($time = NULL) {
global $user;
if ($time == NULL)
$time = time();
if (isset($user))
$time = $time + $user['set_timesdvig'] * 60 * 60;
$timep = "" . date("j M в H:i", $time) . "";
$time_p[0] = date("j n", $time);
$time_p[1] = date("H:i", $time);
if ($time_p[0] == date("j n"))
$timep = date("H:i", $time);
if (isset($user)) {
if ($time_p[0] == date("j n", time() + $user['set_timesdvig'] * 60 * 60))
$timep = date("H:i", $time);
if ($time_p[0] == date("j n", time() - 60 * 60 * (24 - $user['set_timesdvig'])))
$timep = "Вчера в $time_p[1]";
}else {
if ($time_p[0] == date("j n"))
$timep = date("H:i", $time);
if ($time_p[0] == date("j n", time() - 60 * 60 * 24))
$timep = "Вчера в $time_p[1]";
}
$timep = str_replace("Jan", "Янв", $timep);
$timep = str_replace("Feb", "Фев", $timep);
$timep = str_replace("Mar", "Марта", $timep);
$timep = str_replace("May", "Мая", $timep);
$timep = str_replace("Apr", "Апр", $timep);
$timep = str_replace("Jun", "Июня", $timep);
$timep = str_replace("Jul", "Июля", $timep);
$timep = str_replace("Aug", "Авг", $timep);
$timep = str_replace("Sep", "Сент", $timep);
$timep = str_replace("Oct", "Окт", $timep);
$timep = str_replace("Nov", "Ноября", $timep);
$timep = str_replace("Dec", "Дек", $timep);
return $timep;
}
function vremya($time = NULL) {
global $user;
if ($time == NULL)
$time = time();
if (isset($user))
$time = $time + @$user['set_timesdvig'] * 60 * 60;
$timep = "" . date("j M Y в H:i", $time) . "";
$time_p[0] = date("j n Y", $time);
$time_p[1] = date("H:i", $time);
if ($time_p[0] == date("j n Y"))
$timep = date("H:i:s", $time);
if (isset($user)) {
if ($time_p[0] == date("j n Y", time() + @$user['set_timesdvig'] * 60 * 60))
$timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time() - 60 * 60 * (24 - @$user['set_timesdvig'])))
$timep = "Вчера";
}
else {
if ($time_p[0] == date("j n Y"))
$timep = date("H:i:s", $time);
if ($time_p[0] == date("j n Y", time() - 60 * 60 * 24))
$timep = "Вчера";
}
$timep = str_replace("Jan", "Янв", $timep);
$timep = str_replace("Feb", "Фев", $timep);
$timep = str_replace("Mar", "Марта", $timep);
$timep = str_replace("May", "Мая", $timep);
$timep = str_replace("Apr", "Апр", $timep);
$timep = str_replace("Jun", "Июня", $timep);
$timep = str_replace("Jul", "Июля", $timep);
$timep = str_replace("Aug", "Авг", $timep);
$timep = str_replace("Sep", "Сент", $timep);
$timep = str_replace("Oct", "Окт", $timep);
$timep = str_replace("Nov", "Ноября", $timep);
$timep = str_replace("Dec", "Дек", $timep);
return $timep;
}
function kikt($t) {
$t2 = $t - time();
if ($t2 > (60 * 60 * 24 * 30))
$t3 = round($t2 / (60 * 60 * 24 * 30)) . ' месяцев';
elseif ($t2 > (60 * 60 * 24))
$t3 = round($t2 / (60 * 60 * 24)) . ' дней';
elseif ($t2 > (60 * 60))
$t3 = round($t2 / (60 * 60)) . ' часов';
elseif ($t2 > 60)
$t3 = round($t2 / 60) . ' минут';
else
$t3 = $t2 . ' секунд';
return $t3;
}
function num($num) {
$num = abs(intval($num));
return $num;
}
function check($str) {
$str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
$str = mysql_real_escape_string($str);
return $str;
}
function checkout($str) {
$str = nl2br($str);
$str = str_replace(chr(226) . chr(128) . chr(174), '.', $str);
return $str;
}
function strtolower_utf8($string) {
$convert_to = array(
"a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u",
"v", "w", "x", "y", "z", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "ГЁ", "Г", "Г", "Г", "Г", "Г", "Г", "Г",
"Г", "Г", "Г", "Г", "Г", "Г", "Г", "Гё", "Г", "Г", "Г", "Г", "Г", "а", "б", "в", "г", "д", "е", "ё", "ж",
"з", "и", "й", "к", "л", "м", "н", "о", "п", "р", "с", "т", "у", "ф", "х", "ц", "ч", "ш", "щ", "ъ", "ы",
"ь", "э", "ю", "я"
);
$convert_from = array(
"A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U",
"V", "W", "X", "Y", "Z", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г",
"Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "Г", "А", "Б", "В", "Г", "Д", "Е", "Ё", "Ж",
"З", "И", "Й", "К", "Л", "М", "Н", "О", "П", "Р", "С", "Т", "У", "Ф", "Х", "Ц", "Ч", "Ш", "Щ", "Ъ", "Ъ",
"Ь", "Э", "Ю", "Я"
);
return str_replace($convert_from, $convert_to, $string);
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Функция InitVars ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
class InitVars {
# Недопустимые слова в запросах INSERT
var $deny_words = array('UNION', 'CHAR', 'INSERT', 'DELETE', 'SELECT', 'UPDATE', 'GROUP', 'ORDER', 'BENCHMARK', 'union', 'char', 'insert', 'delete', 'select', 'update', 'group', 'order', 'benchmark', 'UNIOu', 'UNIoN', 'UNiON', 'UnION', 'uNION', 'uNIOn', 'uNIoN', 'uNiON', 'unION', 'uniOn', 'UNIon', 'uNiOn', 'UNion', 'UnIoN', 'UnIon', 'unIoN', 'DELETe', 'DELEte', 'DELete', 'DElete', 'Delete', 'dELETE', 'deLETE', 'deleTE', 'delETE', 'DeLeTe', 'dElEtE', 'dElETE', 'DELeTe', 'DElETE', 'DeLETE', 'DELEtE', 'DEletE', 'DeleTE', 'DelETE', 'DEleTE', 'DELetE', 'CHAr', 'CHaR', 'ChAR', 'cHAR', 'chAR', 'CHar', 'CahR', 'chAr', 'cHAr', 'chAR', 'ChAr', 'INSERt', 'INSErT', 'INSeRT', 'INsERT', 'InSERT', 'iNSERT', 'INSErt', 'INSerT', 'INseRT', 'InsERT', 'inSERT', 'INSert', 'INserT', 'InseRT', 'insERT', 'INsert', 'InserT', 'inseRT', 'Insert', 'insertT', 'SELECt', 'SELEcT', 'SELeCT', 'SElECT', 'SeLECT', 'sELECT', 'SELEct', 'SELecT', 'SEleCT', 'SelECT', 'seLECT', 'SELect', 'SElecT', 'SeleCT', 'selECT', 'SElect', 'SelecT', 'seleCT', 'Select', 'selectT'
, 'GROUP', 'GROUp', 'GROuP', 'GRoUP', 'GrOUP', 'gROUP', 'GROup', 'GRouP', 'GroUP', 'grOUP', 'GRoup', 'GrouP', 'groUP', 'Group', 'grouP', 'ORDEr', 'ORDeR', 'ORdER', 'OrDER', 'oRDER', 'ORDer', 'ORdeR', 'OrdER', 'orDER', 'ORder', 'OrdeR', 'ordER', 'Order', 'ordeR', 'UPDATe', 'UPDAtE', 'UPDaTE', 'UPdATE', 'UpDATE', 'uPDATE', 'UPDAte', 'UPDatE', 'UPdaTE', 'UpdATE', 'upDATE', 'UPDate', 'UPdatE', 'UpdaTE', 'updATE', 'UPdate', 'UpdatE', 'updaTE', 'Update', 'updatE', 'BENCHMARK', 'BENCHMARk', 'BENCHMArK', 'BENCHMaRK', 'BENCHmARK', 'BENChMARK', 'BENcHMARK', 'BEnCHMARK', 'BeNCHMARK', 'bENCHMARK', 'BENCHMArk', 'BENCHMarK', 'BENCHmaRK', 'BENChmARK', 'BENchMARK', 'BEncHMARK', 'BenCHMARK', 'beNCHMARK', 'BENCHMark', 'BENCHmarK', 'BENChmaRK', 'BENchmARK', 'BEnchMARK', 'BencHMARK', 'benCHMARK', 'BENCHmark', 'BENChmarK', 'BENchmaRK', 'BEnchmARK', 'BenchMARK', 'bencHMARK', 'BENChmark', 'BENchmarK'
, 'BENchmarK', 'BEnchmaRK', 'BenchmARK', 'benchMARK', 'BENchmark', 'BEnchmarK', 'BenchmaRK', 'benchmARK', 'BEnchmark', 'BenchmarK', 'benchmaRK', 'Benchmark', 'benchmarK', 'BeNcHmArK', 'bEnChMaRk', 'BEnCHMaRK', 'BENChMaRK', 'truncate', 'TRUNCATE', 'TRUNCATe', 'TRUNCAtE', 'TRUNCaTE', 'TRUNcATE', 'TRUnCATE', 'TRuNCATE', 'TrUNCATE', 'tRUNCATE', 'TRUNCAte', 'TRUNCatE', 'TRUNcaTE', 'TRUncATE', 'TRunCATE', 'TruNCATE', 'trUNCATE', 'TRUNCate', 'TRUNcatE', 'TRUncaTE', 'TRuncATE', 'TrunCATE', 'truNCATE', 'TRUNcate', 'TRUncatE', 'TRuncaTE', 'TruncATE', 'trunCATE', 'TRUncate', 'TRuncatE', 'TruncaTE', 'truncATE', 'TRuncate', 'TruncateE', 'truncaTE', 'Truncate', 'truncatE'
, 'groUp', 'grOup', 'gRoup', 'grOUp', 'gROup', 'gROUp', 'ordEr', 'orDer', 'oRder', 'orDEr', 'oRDer', 'oRDEr', 'updaTe', 'updAte', 'upDate', 'uPdate', 'updATe', 'upDAte', 'uPDate', 'upDATe', 'uPDAte', 'uPDATe', 'uniOn', 'unIon', 'uNion', 'unIOn', 'uNIon', 'uNIOn', 'chAr', 'cHar', 'cHAr', 'inseRt', 'insErt', 'inSert', 'iNsert', 'insERt', 'inSErt', 'iNSert', 'inSERt', 'iNSErt', 'iNSERt', 'seleCt', 'selEct', 'seLect', 'sElect', 'selECt', 'seLEct', 'sELect', 'seLECt', 'sELEct', 'sELECt', 'truncaTe', 'truncAte', 'trunCate', 'truNcate', 'trUncate', 'tRuncate', 'truncATe', 'trunCAte', 'truNCate', 'trUNcate', 'tRUncate', 'trunCATe', 'truNCAte', 'trUNCate', 'tRUNcate', 'truNCATe', 'trUNCAte', 'tRUNCate', 'trUNCATe', 'tRUNCAte', 'tRUNCATe'
, 'GrOuP', 'gRoUp', 'GRoUp', 'GrOUp', 'OrDeR', 'oRdEr', 'gRouP', 'grOuP', 'OrDeR', 'orDeR', 'oRdeR', 'UpDaTe', 'uPdAtE', 'UPdAtE', 'uPDatE', 'upDAtE', 'UnIoN', 'uNiOn', 'uNIoN', 'UniOn', 'InSeRt', 'iNsErT', 'iNSeRt', 'InsErT', 'InSerT', 'iNsERt', 'sElEcT', 'SeLeCt', 'sELeCt', 'SelEcT', 'sElECt', 'SeLecT', 'deleTe', 'delEte', 'deLete', 'dElete', 'delETe', 'deLEte', 'dELete', 'deLETe', 'dELEte', 'dELETe', 'TrUnCaTe', 'tRuNcAtE', 'TRunCAte', 'trUNcaTE', 'tRUncATe', 'TruNCatE', 'trUNcaTE', 'TRunCAte', 'TRUnCATe', 'TRuNCAtE', 'tRUNcATE', 'TrUNCaTE', 'tRuncAte', 'TRuNcATE', 'BeNcHmArK', 'bEnChMaRk', 'BEncHMarK', 'beNCmArk', 'bENcHmARk', 'BenChMarK', 'BEncHmaRK', 'beNChMArk'
, 'TRUNCATe', 'TRUNCAtE', 'TRUNCaTE', 'TRUNcATE', 'TRUnCATE', 'TRuNCATE', 'TrUNCATE', 'tRUNCATE', 'TRUNCAte', 'TRUNCatE', 'TRUNcaTE', 'TRUncATE', 'TRunCATE', 'TruNCATE', 'trUNCATE', 'TRUNCate', 'TRUNcatE', 'TRUncaTE', 'TRuncATE', 'TrunCATE', 'trunCATE', 'TRUncate', 'TRuncatE', 'TruncaTE', 'truncATE', 'TRuncate', 'TruncaE', 'truncaTE', 'Truncate', 'truncatE'
);
function InitVars() {
}
# Метод конвентирует суперглобальные массивы $_POST, $_GET в перемнные
# Например : $_GET['psw'] будет переобразовано в $psw с тем же значением
function convertArray2Vars() {
foreach ($_GET as $_ind => $_val) {
global $$_ind;
if (is_array($$_ind))
$$_ind = htmlspecialchars(stripslashes($_val));
}
foreach ($_POST as $_ind => $_val) {
global $$_ind;
if (is_array($$_ind))
$$_ind = htmlspecialchars(stripslashes($_val));
}
}
# Метод проверяет $_GET и $_POST переменные на наличие опасных данных и SQL инъекций
function checkVars() {
//Проверка опасных данных.
foreach ($_GET as $_ind => $_val) {
$_GET[$_ind] = htmlspecialchars(stripslashes($_val));
$exp = explode(" ", $_GET[$_ind]);
foreach ($exp as $ind => $val) {
if (in_array($val, $this->deny_words))
$this->antihack("Запрещено! Доступ закрыт!<br> Ваш ip адресс помечен!");
}
}
foreach ($_POST as $_ind => $_val) {
$_POST[$_ind] = htmlspecialchars(stripslashes($_val));
$exp = explode(" ", $_POST[$_ind]);
foreach ($exp as $ind => $val) {
if (in_array($val, $this->deny_words))
$this->antihack("Запрещено! Доступ закрыт!<br> Ваш ip адресс помечен!");
}
}
}
function antihack($msg) {
echo '<font color="red"><b>Antihack error: </b></font>' . $msg . '<br>n';
die;
}
}
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Gzip сжатие~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~//
if (extension_loaded('zlib') and ini_get('zlib.output_compression') != 1 and ini_get('output_handler') != 'ob_gzhandler') {
$PREFER_DEFLATE = false;
$FORCE_COMPRESSION = false;
function compress_output_gzip($output) {
return gzencode($output);
}
function compress_output_deflate($output) {
return gzdeflate($output, 9);
}
function compress_output_x_gzip($output) {
return gzcompress($output, 9);
}
if (isset($_SERVER['HTTP_ACCEPT_ENCODING']))
$AE = $_SERVER['HTTP_ACCEPT_ENCODING'];
else
$AE = $_SERVER['HTTP_TE'];
$support_gzip = (strpos($AE, 'gzip') !== FALSE) || $FORCE_COMPRESSION;
$support_deflate = (strpos($AE, 'deflate') !== FALSE) || $FORCE_COMPRESSION;
$support_x_gzip = (strpos($AE, 'x-gzip') !== FALSE) || $FORCE_COMPRESSION;
if ($support_gzip && $support_deflate) {
$support_deflate = $PREFER_DEFLATE;
}
if ($support_deflate) {
header("Content-Encoding: deflate");
ob_start("compress_output_deflate");
} else {
if ($support_gzip) {
header("Content-Encoding: gzip");
ob_start("compress_output_gzip");
} else {
if ($support_x_gzip) {
header("Content-Encoding: x_gzip");
ob_start("compress_output_x_gzip");
} else {
ob_start();
$config_gzip = 0;
}
}
}
} else {
$config_gzip = 0;
}
$timer_core = microtime(true) - $timer;
?>