Просмотр файла System/core.php

Размер файла: 11.88Kb
<?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: /');
   }
 }
?>