Файл: engine/main/Simple.php
Строк: 158
<?php
/*
* Абстрактный класс наиболее использующихся функций
* Лучше не трогать!!!
*/
class Simple{
static public function openDB(){
//Подключение БД mysqli
return new mysqli(DB_HOST,DB_USER,DB_PASSWORD,DB_DATABASE);
}
/**
* Метод обработки данных перед добавлением в БД
*/
public static function ClearDataDB($clear){
$connect = self::openDB();
return $connect->real_escape_string($clear);
}
/**
* Обработка всех данных
*/
public static function ClearData($data,$flag){
switch($flag){
case 's':
$data = trim(strip_tags($data));
break;
case 'i':
$data = (int)$data;
break;
}
return $data;
}
/**
* Метод шифрования всех паролей и строк
*/
public static function HashPassword($password){
return md5(md5($password));
}
public static function redirect($url, $message = false){
if ($message){
$_SESSION['message'] = $message;
}
header('Location: '.$url);
exit();
}
/**
* Получение длины строки для utf-8
*/
public static function strlen($str) {
return strlen(self::wtext($str));
}
/**
* substr для utf-8
* @param string $string, int $start [int $lenght]
*/
public static function substr($string, $start, $lenght = NULL) {
return self::utext(substr(self::wtext($string), $start, $lenght));
}
/**
* Конвертирование строки в windows-1251
*/
public static function wtext($text){
return iconv('utf-8', 'windows-1251', $text);
}
/**
* Конвертирование строки в utf-8
*/
public static function utext($text){
return iconv('windows-1251', 'utf-8', $text);
}
/**
* Генерация случайной строки
*/
public static function get_unique_code($length = 0) {
$code = md5(uniqid(rand(), true));
if ($length != 0) return substr($code, 0, $length);
else return $code;
}
// ------------------ Функция определения браузера --------------------//
static public function get_user_agent() {
if (isset($_SERVER['HTTP_USER_AGENT'])) {
$agent = self::ClearData($_SERVER['HTTP_USER_AGENT'], 's');
if (stripos($agent, 'Avant Browser') !== false) {
return 'Avant Browser';
} elseif (stripos($agent, 'Acoo Browser') !== false) {
return 'Acoo Browser';
} elseif (stripos($agent, 'MyIE2') !== false) {
return 'MyIE2';
} elseif (preg_match('|Iron/([0-9a-z.]*)|i', $agent, $pocket)) {
return 'SRWare Iron '.self::subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|Chrome/([0-9a-z.]*)|i', $agent, $pocket)) {
return 'Chrome '.self::subtok($pocket[1], '.', 0, 3);
} elseif (preg_match('#(Maxthon|NetCaptor)( [0-9a-z.]*)?#i', $agent, $pocket)) {
return $pocket[1] . $pocket[2];
} elseif (stripos($agent, 'Safari') !== false && preg_match('|Version/([0-9]{1,2}.[0-9]{1,2})|i', $agent, $pocket)) {
return 'Safari '.self::subtok($pocket[1], '.', 0, 3);
} elseif (preg_match('#(NetFront|K-Meleon|Netscape|Galeon|Epiphany|Konqueror|Safari|Opera Mini|Opera Mobile)/([0-9a-z.]*)#i', $agent, $pocket)) {
return $pocket[1].' '.self::subtok($pocket[2], '.', 0, 2);
} elseif (stripos($agent, 'Opera') !== false && preg_match('|Version/([0-9]{1,2}.[0-9]{1,2})|i', $agent, $pocket)) {
return 'Opera '.$pocket[1];
} elseif (preg_match('|Opera[/ ]([0-9a-z.]*)|i', $agent, $pocket)) {
return 'Opera '.self::subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|Orca/([ 0-9a-z.]*)|i', $agent, $pocket)) {
return 'Orca '.self::subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('#(SeaMonkey|Firefox|GranParadiso|Minefield|Shiretoko)/([0-9a-z.]*)#i', $agent, $pocket)) {
return $pocket[1].' '.self::subtok($pocket[2], '.', 0, 3);
} elseif (preg_match('|rv:([0-9a-z.]*)|i', $agent, $pocket) && strpos($agent, 'Mozilla/') !== false) {
return 'Mozilla '.self::subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|Lynx/([0-9a-z.]*)|i', $agent, $pocket)) {
return 'Lynx '.self::subtok($pocket[1], '.', 0, 2);
} elseif (preg_match('|MSIE ([0-9a-z.]*)|i', $agent, $pocket)) {
return 'IE '.self::subtok($pocket[1], '.', 0, 2);
} else {
$agent = preg_replace('|http://|i', '', $agent);
$agent = strtok($agent, '( ');
$agent = substr($agent, 0, 22);
$agent = self::subtok($agent, '.', 0, 2);
if (!empty($agent)) {
return $agent;
}
}
}
return 'Unknown';
}
// ----------------------- Функция обрезки строки с условием -------------------------//
static function subtok($string, $chr, $pos, $len = null) {
return implode($chr, array_slice(explode($chr, $string), $pos, $len));
}
// -----------------Определение ip---------------- //
static public function get_ip(){
return self::ClearData($_SERVER['REMOTE_ADDR'], 's');
}
// --------------Показ доступа к модулю-------------//
//0 - Доступ всем
//1 - Доступ только зарегистрированным
//2 - Доступ только незарегитрированным
public static function dostup($name){
if(file_exists($_SERVER['DOCUMENT_ROOT'].'/mods/'.$name) && file_exists($_SERVER['DOCUMENT_ROOT'].'/mods/'.$name.'/main.php')){
return true;}
else{
return false;}
}
static public function setting($value){
$db = self::openDB();
$db->query("SET NAMES utf8");
$res = $db->query("SELECT * FROM `settings` WHERE `id` = '1'");
$row = $res->fetch_assoc();
return $row[$value];
}
}
?>