<?PHP
$microtime = microtime(1);
# Запускаем сессию
session_start();
# Буферезируем данные
ob_start();
$sql_count = '0';
define('H', $_SERVER['DOCUMENT_ROOT'].'/');
//---------------------------------------------------//
# Данные от Б.Д. MySQL
$MySQL = array(
'server' => 'localhost',
'user' => 'cat',
'password' => '123456',
'db_name' => 'cat'
);
//---------------------------------------------------//
# Подключаемся к Б.Д. MySQL
$db = @mysql_connect($MySQL['server'], $MySQL['user'], $MySQL['password'])or die('Ошибка при подключении к MySQL серверу');
mysql_select_db($MySQL['db_name'],$db) or die('Ошибка при подключении к Б.Д MySQL');
mysql_query("SET NAMES utf8");
//---------------------------------------------------//
# Подключаем функции
# фильтрация текста
function esc($text)
{
# Удаляем пробел из начала и конца строки
$text = trim($text);
# Преобразуем специальные символы в HTML сущности
$text = htmlspecialchars($text);
# Экранируем спец символы
$text = mysql_real_escape_string($text);
# Возвращаем отфильтровананный текст
return $text;
}
# фильтрация текста
function xss($text)
{
# Удаляем пробел из начала и конца строки
$text = trim($text);
# Преобразуем специальные символы в HTML сущности
$text = htmlspecialchars($text);
# Возвращаем отфильтровананный текст
return $text;
}
# фильтрация цифр
function num($num)
{
# Вырезаем пробелы
$num = str_replace(' ','',$num);
# Проверям число
$num = abs($num);
# Возвращаем отфильтрованное число
return $num;
}
function user_browser($agent) {
preg_match("/(MSIE|Opera|Firefox|Chrome|Version|Opera Mini|Netscape|Konqueror|SeaMonkey|Camino|Minefield|Iceweasel|K-Meleon|Maxthon)(?:\/| )([0-9.]+)/", $agent, $browser_info); // регулярное выражение, которое позволяет отпределить 90% браузеров
list(,$browser,$version) = $browser_info; // получаем данные из массива в переменную
if (preg_match("/Opera ([0-9.]+)/i", $agent, $opera)) return 'Opera '.$opera[1]; // определение _очень_старых_ версий Оперы (до 8.50), при желании можно убрать
if ($browser == 'MSIE') { // если браузер определён как IE
preg_match("/(Maxthon|Avant Browser|MyIE2)/i", $agent, $ie); // проверяем, не разработка ли это на основе IE
if ($ie) return $ie[1].' based on IE '.$version; // если да, то возвращаем сообщение об этом
return 'IE '.$version; // иначе просто возвращаем IE и номер версии
}
if ($browser == 'Firefox') { // если браузер определён как Firefox
preg_match("/(Flock|Navigator|Epiphany)\/([0-9.]+)/", $agent, $ff); // проверяем, не разработка ли это на основе Firefox
if ($ff) return $ff[1].' '.$ff[2]; // если да, то выводим номер и версию
}
if ($browser == 'Opera' && $version == '9.80') return 'Opera '.substr($agent,-5); // если браузер определён как Opera 9.80, берём версию Оперы из конца строки
if ($browser == 'Version') return 'Safari '.$version; // определяем Сафари
if (!$browser && strpos($agent, 'Gecko')) return 'Browser based on Gecko'; // для неопознанных браузеров проверяем, если они на движке Gecko, и возращаем сообщение об этом
return $browser.' '.$version; // для всех остальных возвращаем браузер и версию
}
# Вывод ошибок
function error($error)
{
echo '<div class="text"><img src="/Style/icons/error.png" alt="" /> '.$error.'</div>';
}
# Вывод ошибок
function message($message)
{
echo '<div class="text"><img src="/Style/icons/message.png" alt="" /> '.$message.'</div>';
}
# обробатываем время
function data($time)
{
$month = array('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
$month_rus = array('Янв','Фев','Мар','Апр','Мая','Июн','Июл','Авг','Сент','Окт','Ноя','Дек');
$timep = date("j M Y в H:i", $time);
$timep = str_replace($month,$month_rus,$timep);
return $timep;
}
function text($text)
{
$br = preg_replace("#((<br( ?/?)>)|\n|\r)+#i",'<br />', $text);
return $br;
}
# BB коды взято с JohnCms
function bbcode($var)
{
// Список поиска
$search = array(
'#\[b](.+?)\[/b]#is', // Жирный
'#\[i](.+?)\[/i]#is', // Курсив
'#\[u](.+?)\[/u]#is', // Подчеркнутый
'#\[s](.+?)\[/s]#is', // Зачеркнутый
'#\[small](.+?)\[/small]#is', // Маленький шрифт
'#\[big](.+?)\[/big]#is', // Большой шрифт
'#\[red](.+?)\[/red]#is', // Красный
'#\[green](.+?)\[/green]#is', // Зеленый
'#\[blue](.+?)\[/blue]#is', // Синий
'!\[color=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)](.+?)\[/color]!is', // Цвет шрифта
'!\[bg=(#[0-9a-f]{3}|#[0-9a-f]{6}|[a-z\-]+)](.+?)\[/bg]!is', // Цвет фона
'#\[(quote|c)](.+?)\[/(quote|c)]#is', // Цитата
'#\[\*](.+?)\[/\*]#is' // Список
);
// Список замены
$replace = array(
'<span style="font-weight: bold">$1</span>', // Жирный
'<span style="font-style:italic">$1</span>', // Курсив
'<span style="text-decoration:underline">$1</span>', // Подчеркнутый
'<span style="text-decoration:line-through">$1</span>', // Зачеркнутый
'<span style="font-size:x-small">$1</span>', // Маленький шрифт
'<span style="font-size:large">$1</span>', // Большой шрифт
'<span style="color:red">$1</span>', // Красный
'<span style="color:green">$1</span>', // Зеленый
'<span style="color:blue">$1</span>', // Синий
'<span style="color:$1">$2</span>', // Цвет шрифта
'<span style="background-color:$1">$2</span>', // Цвет фона
'<span class="quote" style="display:block">$2</span>', // Цитата
'<span class="bblist">$1</span>' // Список
);
return preg_replace($search, $replace, $var);
}
# Транслит
function translitIt($str)
{
$tr = array(
"А"=>"a","Б"=>"b","В"=>"v","Г"=>"g",
"Д"=>"d","Е"=>"e","Ж"=>"j","З"=>"z","И"=>"i",
"Й"=>"y","К"=>"k","Л"=>"l","М"=>"m","Н"=>"n",
"О"=>"o","П"=>"p","Р"=>"r","С"=>"s","Т"=>"t",
"У"=>"u","Ф"=>"f","Х"=>"h","Ц"=>"ts","Ч"=>"ch",
"Ш"=>"sh","Щ"=>"sch","Ъ"=>"","Ы"=>"yi","Ь"=>"",
"Э"=>"e","Ю"=>"yu","Я"=>"ya","а"=>"a","б"=>"b",
"в"=>"v","г"=>"g","д"=>"d","е"=>"e","ж"=>"j",
"з"=>"z","и"=>"i","й"=>"y","к"=>"k","л"=>"l",
"м"=>"m","н"=>"n","о"=>"o","п"=>"p","р"=>"r",
"с"=>"s","т"=>"t","у"=>"u","ф"=>"f","х"=>"h",
"ц"=>"ts","ч"=>"ch","ш"=>"sh","щ"=>"sch","ъ"=>"y",
"ы"=>"yi","ь"=>"","э"=>"e","ю"=>"yu","я"=>"ya",
" "=> "_", "."=> "", "/"=> "_"
);
$urlstr = strtr($str,$tr);
$urlstr = preg_replace('/[^A-Za-z0-9_\-]/', '', $urlstr);
return $urlstr;
}
function wCache($content, $filename)
{
$fp = fopen(H.'Cache/'.$filename, 'w');
fwrite($fp, $content);
fclose($fp);
}
//---------------------------------------------------//
# Подключаем пагинацию
function navigation($total,$page,$url)
{
if($page-1 > 0)
{
$left='<a href="'.$url.''.($page-1).'"><-Пред.</a>';
}
else
{
$left = '<-Пред.';
}
if($page+1 > 0 AND $page < $total)
{
$right = '<a href="'.$url.''.($page+1).'">След.-></a>';
}
else
{
$right = 'След.->';
}
if($page-3 > 0)
{
$first=' <a href="'.$url.'"><span class="pagination_button">1</span></a>..';
}
if($page-2 > 0)
{
$page2left=' <a style="text-decoration: none;color:#333333;" href="'.$url.''.($page-2).'"><span class="pagination_button">'.($page-2).'</span></a> ';
}
if($page-1 > 0)
{
$page1left=' <a style="text-decoration: none;color:#333333;" href="'.$url.''.($page-1).'"><span class="pagination_button">'.($page-1).'</span></a> ';
}
if($page+1 <= $total)
{
$page1right=' <a style="text-decoration: none;color:#333333;" href="'.$url.''.($page+1).'"><span class="pagination_button">'.($page + 1).'</span></a> ';
}
if($page+2 <= $total)
{
$page2right=' <a style="text-decoration: none;color:#333333;" href="'.$url.''.($page+2).'"><span class="pagination_button">'.($page + 2).'</span></a> ';
}
if($page+3 <= $total)
{
$page3right='..<a style="text-decoration: none;color:#333333;" href="'.$url.''.($total).'"><span class="pagination_button">'.($total).'</span></a>';
}
//return '<div class="text"><center>'.$first.$page2left.$page1left.'<b><span class="pages">'.$page.'</span></b>'.$page1right.$page2right.$page3right.'</center></div>';
return '<div class="pagination"><center>'.$first.$page2left.$page1left.'<b><span class="pagination_select">'.$page.'</span></b>'.$page1right.$page2right.$page3right.'</center></div>';
}
//---------------------------------------------------//
# Подключение настроек из БД
$config = array();
$settings = mysql_query("SELECT * FROM `settings_core`"); $sql_count++;
while($item = mysql_fetch_array($settings))
{
$system[$item['key']] = $item['value'];
}
# Проверяем авторизацию пользователя
if(isset($_COOKIE['login_user']) && isset($_COOKIE['key_user']))
{
$login_user = $_COOKIE['login_user'];
$key_user = $_COOKIE['key_user'];
$user = mysql_query("SELECT * FROM `users` WHERE `login` = '$login_user' AND `key` = '$key_user'"); $sql_count ++;
if(mysql_num_rows($user) == TRUE)
{
$user = mysql_fetch_array($user);
}
else
{
setcookie('login_user', $login, time() - 3600 * 24 * 7, '/');
setcookie('key_user', $key, time() - 3600 * 24 * 7, '/');
header('Location: /');
}
}
?>