Вход Регистрация
Файл: core/cuctema/core.php
Строк: 516
<?

#анти ддос
require_once $_SERVER['DOCUMENT_ROOT']."/core/cuctema/antiddos.php";
$ksa = new ks_antiddos();
$ksa->doit(20,10); // разрешаем 10 хитов за 20 секунд

# Потключение к базе данных
$hosting 'localhost';
$db_name 'hardb107_7emka';
$db_pass 'seregawar';
$db_7emka 'hardb107_7emka';
$db_error 'Нет соединения с базой данных';
$db_errors 'Нет созданой базы данных';

#######################################CORE####################################
if (function_exists('error_reporting'))@error_reporting(0); // отключаем показ ошибок
// Ставим ограничение для выполнения скрипта на 60 сек
if (function_exists('set_time_limit'))@set_time_limit(60);
if (
function_exists('ini_set')){
ini_set('display_errors',false); // отключаем показ ошибок
ini_set('register_globals'false); // вырубаем глобальные переменные
ini_set('session.use_cookies'true); // используем куки для сессий
ini_set('session.use_trans_sid'true); // используем url для передачи сессий
ini_set('arg_separator.output',     '&'); // разделитель переменных в url (для соответствия с xml)
}
if (
ini_get('register_globals')) {
$allowed = array('_ENV' => 1'_GET' => 1'_POST' => 1'_COOKIE' => 1'_FILES' => 1'_SERVER' => 1'_REQUEST' => 1'GLOBALS' => 1);
foreach (
$GLOBALS as $key => $value) {
if (!isset(
$allowed[$key])) {
unset(
$GLOBALS[$key]);
}
}
}
list(
$msec$sec) = explode(chr(32), microtime()); // время запуска скрипта
$conf['headtime'] = $sec $msec;
$time=&time();
$phpvervion=explode('.'phpversion());
$conf['phpversion']=$phpvervion[0];
$upload_max_filesize=ini_get('upload_max_filesize');
if (
preg_match('#([0-9]*)([a-z]*)#i',$upload_max_filesize,$varrs))
{
if (
$varrs[2]=='M')$upload_max_filesize=$varrs[1]*1048576;
elseif (
$varrs[2]=='K')$upload_max_filesize=$varrs[1]*1024;
elseif (
$varrs[2]=='G')$upload_max_filesize=$varrs[1]*1024*1048576;
}
#######################################/CORE/####################################

#########################################################COMPRESS###############################################
function compress_output_gzip($output){return gzencode($output,9);}
function 
compress_output_deflate($output){return gzdeflate($output9);}
// сжатие по умолчанию
$Content_Encoding['deflate']=false;
$Content_Encoding['gzip']=false;
// включение сжатия, если поддерживается браузером
if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) && preg_match('#deflate#i',$_SERVER['HTTP_ACCEPT_ENCODING']))
$Content_Encoding['deflate']=true;
if (isset(
$_SERVER['HTTP_ACCEPT_ENCODING']) && preg_match('#gzip#i',$_SERVER['HTTP_ACCEPT_ENCODING']))
$Content_Encoding['gzip']=true;
// Непосредственное включение сжатия
if ($Content_Encoding['deflate']){
header("Content-Encoding: deflate");
ob_start("compress_output_deflate");
}
elseif(
$Content_Encoding['gzip']){
header("Content-Encoding: gzip");
ob_start("compress_output_gzip");
}
else
ob_start(); // если нет сжатия, то просто буферизация данных
$compress=true;
#########################################################/COMPRESS/###############################################

#################################################SESS###################################################
@session_name('SESS');
@
session_start();
$sess=mysql_escape_string(session_id());
if (!
preg_match('#[A-z0-9]{32}#i',$sess))$sess=md5(rand(09009,999999));
#################################################/SESS/###################################################

###################HOME####################
define("H"$_SERVER["DOCUMENT_ROOT"].'/');
##################/HOME/###################


###############################################SETTING###############################################
$set=array(); // массив с настройками
$set_default=array();
$set_dinamic=array();
$set_replace=array();

// загрузка настроек по умолчанию. Позволяет исключить отсутствие неопределенных переменных
$default=@parse_ini_file(H.'core/cuctema/set/default.ini',true);
$set_default=@$default['DEFAULT'];
$set_replace=@$default['REPLACE'];

if (
$fset=@file_get_contents(H.'core/cuctema/set/7emka.dat'))
{
$set_dinamic=unserialize($fset);
}
elseif (
file_exists(H.'install/index.php'))
{
header("Location: /install/");
exit;
}

$set = @array_merge ($set_default$set_dinamic$set_replace);


if (
$set['show_err_php']){
error_reporting(E_ALL); // включаем показ ошибок
ini_set('display_errors',true); // включаем показ ошибок
}

if (isset(
$set['anti_hacker'])){
function 
anti_hacker($txt){
$txt=str_replace("|","I",$txt); 
$txt=str_replace("../",",,/",$txt);
$txt=str_replace("||","I",$txt);
$txt=htmlspecialchars($txt);                  
$txt=str_replace(""","&#34;",$txt);
$txt=str_replace("/\$/","&#36;",$txt);
$txt=str_replace("$","&#36;",$txt);          
$txt=str_replace("\","&#92;",$txt);
$txt=str_replace("@","&#64;",$txt);
$txt=str_replace("`","",$txt);  
$txt=str_replace("^","",$txt);
$txt=str_replace("%","&#37;",$txt);
$txt=stripslashes(trim($txt));
return 
$txt;}
}

if (isset(
$_SERVER["HTTP_USER_AGENT"]) && preg_match('#up-browser|blackberry|windows ce|symbian|palm|nokia#i'$_SERVER["HTTP_USER_AGENT"]))
$webbrowser=false;
elseif (isset(
$_SERVER["HTTP_USER_AGENT"]) && (preg_match('#windows#i'$_SERVER["HTTP_USER_AGENT"]) ||preg_match('#linux#i'$_SERVER["HTTP_USER_AGENT"]) ||preg_match('#bsd#i'$_SERVER["HTTP_USER_AGENT"]) ||preg_match('#x11#i'$_SERVER["HTTP_USER_AGENT"]) ||preg_match('#unix#i'$_SERVER["HTTP_USER_AGENT"]) ||preg_match('#macos#i'$_SERVER["HTTP_USER_AGENT"]) ||preg_match('#macintosh#i'$_SERVER["HTTP_USER_AGENT"])))
$webbrowser=true;else $webbrowser=false// определение типа браузера

$set['web']=false;
###############################################/SETTING/###############################################


###############################################CONNECT#################################################
if(!($db=@mysql_connect(''.$hosting.''''.$db_name.'',''.$db_pass.''))){echo "".$db_error."";exit;}
if (!@
mysql_select_db(''.$db_7emka.'',$db)){echo "".$db_errors."";exit;}
mysql_query('set charset utf8',$db); 
mysql_query('SET names utf8',$db); 
mysql_query('set character_set_client="utf8"',$db); 
mysql_query('set character_set_connection="utf8"',$db); 
mysql_query('set character_set_result="utf8"',$db);
###############################################/CONNECT/#################################################

###############################################IPUA#######################################################
$ip=false;
if(isset(
$_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR']!='127.0.0.1' && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#",$_SERVER['HTTP_X_FORWARDED_FOR']))
{
$ip2['xff']=$_SERVER['HTTP_X_FORWARDED_FOR'];
$ipa[] = $_SERVER['HTTP_X_FORWARDED_FOR'];
}
if(isset(
$_SERVER['HTTP_CLIENT_IP']) && $_SERVER['HTTP_CLIENT_IP']!='127.0.0.1' && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#",$_SERVER['HTTP_CLIENT_IP']))
{
$ip2['cl']=$_SERVER['HTTP_CLIENT_IP'];
$ipa[] = $_SERVER['HTTP_CLIENT_IP'];
}
if(isset(
$_SERVER['REMOTE_ADDR']) && preg_match("#^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$#",$_SERVER['REMOTE_ADDR']))
{
$ip2['add']=$_SERVER['REMOTE_ADDR'];
$ipa[] = $_SERVER['REMOTE_ADDR'];
}

$ip=$ipa[0];

$iplong =ip2long($ip);

if (isset(
$_SERVER['HTTP_USER_AGENT']))
{
$ua=$_SERVER['HTTP_USER_AGENT'];
$ua=strtok($ua'/');
$ua=strtok($ua'('); // оставляем только то, что до скобки
$ua=preg_replace('#[^a-z_./ 0-9-]#iu'null$ua); // вырезаем все "левые" символы

// Опера мини тоже посылает данные о телефоне :)
if (isset($_SERVER['HTTP_X_OPERAMINI_PHONE_UA']) && preg_match('#Opera#i',$ua))
{
$ua_om=$_SERVER['HTTP_X_OPERAMINI_PHONE_UA'];
$ua_om=strtok($ua_om'/');
$ua_om=strtok($ua_om'(');
$ua_om=preg_replace('#[^a-z_. 0-9-]#iu'null$ua_om);
$ua='Opera Mini ('.$ua_om.')';
}

}else 
$ua='Нет данных';
###############################################/IPUA/#######################################################


###############################################FNC##########################################################
// псевдонимы функций
function my_esc($str){return mysql_real_escape_string($str);}

// для php 4 (альтернатива file_put_contents)
if (!function_exists('file_put_contents')){
function 
file_put_contents($file,$data){
$f=@fopen($file'w');
return @
fwrite($f$data);
@
fclose($f);}}


if (
$set['antidos']){// Защита от частых запросов с одного IP
$antidos[]=array('time'=>$time);$k_loads=0;
if (
is_file(H.'core/temp/antidos_'.$iplong.'.dat')){
$antidos_dat=unserialize(file_get_contents(H.'core/temp/antidos_'.$iplong.'.dat'));
for (
$i=0;$i<150 && $i<sizeof($antidos_dat);$i++)
{
if(
$antidos_dat[$i]['time']>$time-5)
{
$k_loads++;
$antidos[]=$antidos_dat[$i];
}
}
}
if (
$k_loads>100)
{
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_ip` WHERE `min` <= '$iplong' AND `max` >= '$iplong'"), 0)==0)
mysql_query("INSERT INTO `ban_ip` (`min`, `max`, `prich`) values('$iplong', '$iplong', 'AntiDos')",$db);
}
@
file_put_contents(H.'core/temp/antidos_'.$iplong.'.dat'serialize($antidos));
@
chmod(H.'core/temp/antidos_'.$iplong.'.dat'0777);
}


// бан по IP
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_ip` WHERE `min` <= '$iplong' AND `max` >= '$iplong'"), 0)!=0){
if (!isset(
$ban_ip_page)){header("Location: /ban_ip.php");exit;}}
if (isset(
$ip2['cl']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_ip` WHERE `min` <= '".ip2long($ip2['cl'])."' AND `max` >= '".ip2long($ip2['cl'])."'"), 0)!=0){
if (!isset(
$ban_ip_page)){header("Location: /ban_ip.php");exit;}}
if (isset(
$ip2['xff']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `ban_ip` WHERE `min` <= '".ip2long($ip2['xff'])."' AND `max` >= '".ip2long($ip2['xff'])."'"), 0)!=0){
if (!isset(
$ban_ip_page)){header("Location: /ban_ip.php");exit;}}


// антимат сделает автоматическое предупреждение, а затем бан
function antimat($str)
{
global 
$user,$time,$set;
if (
$set['antimat'])
{
$antimat=&$_SESSION['antimat'];
include_once 
H.'core/cuctema/antimat.php';
$censure=censure($str);
if (
$censure)
{
$antimat[$censure]=$time;
if (
count($antimat)>10 && isset($user) && $user['level']) // если сделано больше 3-х предупреждений
{
$prich="Обнаружен мат: $censure";
$timeban=$time+60*60// бан на час
mysql_query("INSERT INTO `ban` (`id_user`, `id_ban`, `prich`, `time`) VALUES ('$user[id]', '0', '$prich', '$timeban')");
admin_log('Пользователи','Бан',"Бан пользователя '[url=/amd_panel/ban.php?id=$user[id]]$user[nick][/url]' (id#$user[id]) до ".vremja($timeban)." по причине '$prich'");
header('Location: /ban.php?'.SID);exit;
}
return 
$censure;
}
else return 
false;
}
else return 
false;
}

// рекурсивное удаление папки
function delete_dir($dir){
if (
is_dir($dir)){$od=opendir($dir);
while (
$rd=readdir($od)){
if (
$rd == '.' || $rd == '..') continue;
if (
is_dir("$dir/$rd")){
@
chmod("$dir/$rd"0777);
delete_dir("$dir/$rd");}
else{
@
chmod("$dir/$rd"0777);
@
unlink("$dir/$rd");}}
closedir($od);
@
chmod("$dir"0777);
return @
rmdir("$dir");}
else{
@
chmod("$dir"0777);
@
unlink("$dir");}}


// очистка временной папки
if (!isset($hard_process)){
$q=mysql_query("SELECT * FROM `cron` WHERE `id` = 'clear_tmp_dir'");
if (
mysql_num_rows($q)==0)mysql_query("INSERT INTO `cron` (`id`, `time`) VALUES ('clear_tmp_dir', '$time')");
$clear_dir mysql_fetch_assoc($q);
if (
$clear_dir['time']==NULL || $clear_dir['time']<$time-60*60*24){
$hard_process=true;
mysql_query("UPDATE `cron` SET `time` = '$time' WHERE `id` = 'clear_tmp_dir'");
$od=opendir(H.'/core/temp/');
while (
$rd=readdir($od)){
if (!
preg_match('#^.#',$rd) && filectime(H.'core/temp/'.$rd)<$time-60*60*24){@delete_dir(H.'core/temp/'.$rd);}}
closedir($od);}}


// Подведение итогов статистики
if (!isset($hard_process)){
$q=mysql_query("SELECT * FROM `cron` WHERE `id` = 'visit' LIMIT 1");
if (
mysql_num_rows($q)==0)mysql_query("INSERT INTO `cron` (`id`, `time`) VALUES ('visit', '$time')");
$visit mysql_fetch_assoc($q);
if (
$visit['time']==NULL || $visit['time']<time()-60*60*24){
if (
function_exists('set_time_limit'))@set_time_limit(600); // Ставим ограничение на 10 минут
$last_day=mktime(000date('m'), date('d')-1); // начало вчерашних суток
$today_time=mktime(000); // начало сегодняшних суток
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `visit_everyday` WHERE `time` = '$last_day'"),0)==0){
$hard_process=true;
// записываем общие данные за вчерашние сутки в отдельную таблицу
mysql_query("INSERT INTO `visit_everyday` (`host` , `host_ip_ua`, `hit`, `time`) VALUES ((SELECT COUNT(DISTINCT `ip`) FROM `visit_today` WHERE `time` < '$today_time'),(SELECT COUNT(DISTINCT `ip`, `ua`) FROM `visit_today` WHERE `time` < '$today_time'),(SELECT COUNT(*) FROM `visit_today` WHERE `time` < '$today_time'),'$last_day')");
mysql_query('DELETE FROM `visit_today` WHERE `time` < '.$today_time);}}}







// запись о переходах на сайт
if (isset($_SERVER['HTTP_REFERER']) && !preg_match('#'.preg_quote($_SERVER['HTTP_HOST']).'#'$_SERVER['HTTP_REFERER']) && $ref=@parse_url($_SERVER['HTTP_REFERER'])){
if (isset(
$ref['host']))$_SESSION['http_referer']=$ref['host'];}




function 
br($msg,$br='<br />'){return preg_replace("#((<br( ?/?)>)|n|r)+#i",$br$msg);} // переносы строк

function esc($text,$br=NULL){ // Вырезает все нечитаемые символы
if ($br!=NULL)
for (
$i=0;$i<=31;$i++)$text=str_replace(chr($i), NULL$text);
else{
for (
$i=0;$i<10;$i++)$text=str_replace(chr($i), NULL$text);
for (
$i=11;$i<20;$i++)$text=str_replace(chr($i), NULL$text);
for (
$i=21;$i<=31;$i++)$text=str_replace(chr($i), NULL$text);}
return 
$text;}





// получаем данные пользователя и уровень прав (+ кеширование)
function get_user($user_id=0)
{
if (
$user_id==0)
{
// бот
$ank2['id']=0;
$ank2['nick']='Система';
$ank2['level']=999;
$ank2['pol']=1;
$ank2['group_name']='Системный робот';
$ank2['ank_o_sebe']='Создан для уведомлений';


return 
$ank2;
}
else
{
static 
$users// переменная не удаляется после вызова функции
$user_id=intval($user_id);
$users[0]=false;
if (!isset(
$users[$user_id])){
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '$user_id'"),0)==1)
{
$users[$user_id]=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '$user_id' LIMIT 1"));
$tmp_us=mysql_fetch_assoc(mysql_query("SELECT `level`,`name` AS `group_name` FROM `user_group` WHERE `id` = '".$users[$user_id]['group_access']."' LIMIT 1"));

if (
$tmp_us['group_name']==null) {
$users[$user_id]['level']=0;
$users[$user_id]['group_name']='Пользователь';
}
else
{
$users[$user_id]['level']=$tmp_us['level'];
$users[$user_id]['group_name']=$tmp_us['group_name'];
}
}
else 
$users[$user_id]=false;
}
return 
$users[$user_id];
}
}





// определение оператора
function opsos($ips=NULL){
global 
$ip;
if (
$ips==NULL)$ips=$ip;
$ipl=ip2long($ips);
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `opsos` WHERE `min` <= '$ipl' AND `max` >= '$ipl'"), 0)!=0){
$opsos=mysql_fetch_assoc(mysql_query("SELECT opsos FROM `opsos` WHERE `min` <= '$ipl' AND `max` >= '$ipl' LIMIT 1"));
return 
stripcslashes(htmlspecialchars($opsos['opsos']));}
else return 
false;}





// вывод времени
function vremja($time=NULL)
{
global 
$user;
if (
$time==NULL)$time=time();
if (isset(
$user))$time=$time+$user['set_timesdvig']*60*60;
$timep="".date("H:i, <b>j M Y</b>"$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="$time_p[1], <b>Вчера</b>";}
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="$time_p[1], <b>Вчера</b>";}
$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 only_reg($link NULL) {
global 
$user;
if (!isset(
$user))
{
if (
$link==NULL)$link=H.'/'.SID;
header("Location: $link");exit;}}
// только для незарегистрированых
function only_unreg($link NULL) {
global 
$user;
if (isset(
$user)){
if (
$link==NULL)$link=H.'/'.SID;
header("Location: $link");exit;}}
// только для тех, у кого уровень доступа больше или равен $level
function only_level($level=0,$link NULL) {
global 
$user;
if (!isset(
$user) || $user['level']<$level){
if (
$link==NULL)$link='/'.SID;
header("Location: $link");exit;}}





if (!isset(
$hard_process)){
$q=mysql_query("SELECT * FROM `cron` WHERE `id` = 'everyday'");
if (
mysql_num_rows($q)==0)mysql_query("INSERT INTO `cron` (`id`, `time`) VALUES ('everyday', '".time()."')");
$everyday mysql_fetch_assoc($q);
if (
$everyday['time']==NULL || $everyday['time']<time()-60*60*24){
$hard_process=true;
if (
function_exists('set_time_limit'))@set_time_limit(600); // Ставим ограничение на 10 минут
mysql_query("UPDATE `cron` SET `time` = '".time()."' WHERE `id` = 'everyday'");
mysql_query("DELETE FROM `guests` WHERE `date_last` < '".(time()-600)."'");
mysql_query("DELETE FROM `chat_post` WHERE `time` < '".(time()-60*60*24)."'"); // удаление старых постов в чате
mysql_query("DELETE FROM `user` WHERE `activation` != null AND `time_reg` < '".(time()-60*60*24)."'"); // удаление неактивированных аккаунтов

// удаляем все контакты, помеченные на удаление более месяца назад
$qd=mysql_query("SELECT * FROM `users_konts` WHERE `type` = 'deleted' AND `time` < ".($time-60*60*24*30));
while (
$deleted=mysql_fetch_array($qd)) {
mysql_query("DELETE FROM `users_konts` WHERE `id_user` = '$deleted[id_user]' AND `id_kont` = '$deleted[id_kont]'");

if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `users_konts` WHERE `id_kont` = '$deleted[id_user]' AND `id_user` = '$deleted[id_kont]'"),0)==0)
{
// если юзер не находится в контакте у другого, то удаляем и все сообщения
mysql_query("DELETE FROM `mail` WHERE `id_user` = '$deleted[id_user]' AND `id_kont` = '$deleted[id_kont]' OR `id_kont` = '$deleted[id_user]' AND `id_user` = '$deleted[id_kont]'");
}
}



$tab=mysql_query('SHOW TABLES FROM '.$set['mysql_db_name']);
for(
$i=0;$i<mysql_num_rows($tab);$i++)
{
mysql_query("OPTIMIZE TABLE `".mysql_tablename($tab,$i)."`"); // оптимизация таблиц
}
}
}



// вывод ошибок
function err(){
global 
$err;
if (isset(
$err)){
if (
is_array($err)){
foreach (
$err as $key=>$value) {
echo 
"<div class='err'>$value</div>n";}}
else echo 
"<div class='err'>$err</div>n";}}


function 
msg($msg){echo "<div class='mess_ok'>$msg</div>n";} // вывод сообщений


// отправка запланированных писем
$q=mysql_query("SELECT * FROM `mail_to_send` LIMIT 1");
if (
mysql_num_rows($q)!=0){
$mail mysql_fetch_assoc($q);
$adds="From: "admin@$_SERVER[HTTP_HOST]" <admin@$_SERVER[HTTP_HOST]>n";
$adds .= "Content-Type: text/html; charset=utf-8n";
mail($mail['mail'],'=?utf-8?B?'.base64_encode($mail['them']).'?=',$mail['msg'],$adds);
mysql_query("DELETE FROM `mail_to_send` WHERE `id` = '$mail[id]'");}

// сохранение настроек системы
function save_settings($set){
unset(
$set['web']);
if (
$fopen=@fopen(H.'/core/cuctema/set/7emka.dat''w')){
@
fputs($fopenserialize($set));
@
fclose($fopen);
@
chmod(H.'/core/cuctema/set/7emka.dat'0777);
return 
true;}
else
return 
false;}


// запись действий администрации
function admin_log($mod,$act,$opis){
global 
$user;

$q=mysql_query("SELECT * FROM `admin_log_mod` WHERE `name` = '".my_esc($mod)."' LIMIT 1");
if (
mysql_num_rows($q)==0)
{
mysql_query("INSERT INTO `admin_log_mod` (`name`) VALUES ('".my_esc($mod)."')");
$id_mod=mysql_insert_id();
}
else 
$id_mod=mysql_result($q0);

$q2=mysql_query("SELECT * FROM `admin_log_act` WHERE `name` = '".my_esc($act)."' AND `id_mod` = '$id_mod' LIMIT 1");
if (
mysql_num_rows($q2)==0)
{
mysql_query("INSERT INTO `admin_log_act` (`name`, `id_mod`) VALUES ('".my_esc($act)."', '$id_mod')");
$id_act=mysql_insert_id();
}
else 
$id_act=mysql_result($q20);

mysql_query("INSERT INTO `admin_log` (`time`, `id_user`, `mod`, `act`, `opis`) VALUES ('".time()."','$user[id]', '$id_mod', '$id_act', '".my_esc($opis)."')");
}



// Загрузка остальных функций из папки "sys/fnc"
$opdirbase=opendir(H.'/core/cuctema/function');
while (
$filebase=readdir($opdirbase))
{
if (
preg_match('#.php$#i',$filebase))
{
include_once(
H.'/core/cuctema/function/'.$filebase);
}
}


// запись о посещении
mysql_query("INSERT INTO `visit_today` (`ip` , `ua`, `time`) VALUES ('$iplong', '".@my_esc($_SERVER['HTTP_USER_AGENT'])."', '$time')");

###############################################/FNC/##########################################################

###############################################USER##########################################################
if (isset($_GET['id']) && isset($_GET['pass']))
{
include_once 
H.'core/cuctema/shif.php';
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '".intval($_GET['id'])."' AND `pass` = '".shif($_GET['pass'])."' LIMIT 1"), 0)==1)
{
$user=get_user($_GET['id']);
//$user=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = '".intval($_GET['id'])."' AND `pass` = '".shif($_GET['pass'])."' LIMIT 1"));
$_SESSION['id_user']=$user['id'];

//setcookie('id_user', $user['id'], time()+60*60*24*365);
//setcookie('pass', cookie_encrypt($_GET['pass'],$user['id']), time()+60*60*24*365);

mysql_query("UPDATE `user` SET `date_aut` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
mysql_query("UPDATE `user` SET `date_last` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
}
else 
$err='Неправильный логин или пароль';
}
elseif (isset(
$_POST['nick']) && isset($_POST['pass']))
{
include_once 
H.'core/cuctema/shif.php';
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."' AND `pass` = '".shif($_POST['pass'])."' LIMIT 1"), 0)==1)
{
$user=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."' AND `pass` = '".shif($_POST['pass'])."' LIMIT 1"));
$_SESSION['id_user']=$user['id'];

if (isset(
$_POST['aut_save']) && $_POST['aut_save']==1){
setcookie('id_user'$user['id'], time()+60*60*24*365);
setcookie('pass'cookie_encrypt($_POST['pass'],$user['id']), time()+60*60*24*365);
}
mysql_query("UPDATE `user` SET `date_aut` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
mysql_query("UPDATE `user` SET `date_last` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
}
else 
$err='Неправильный логин или пароль';
}
elseif (isset(
$_SESSION['id_user']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = $_SESSION[id_user] LIMIT 1"), 0)==1)
{
$user=get_user($_SESSION['id_user']);
//$user=mysql_fetch_assoc(mysql_query("SELECT * FROM `user` WHERE `id` = $_SESSION[id_user] LIMIT 1"));
mysql_query("UPDATE `user` SET `date_last` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
$user['type_input']='session';
}
elseif (isset(
$_COOKIE['id_user']) && isset($_COOKIE['pass']) && $_COOKIE['id_user']!=NULL && $_COOKIE['pass']!=NULL)
{
include_once 
H.'core/cuctema/shif.php';
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = ".intval($_COOKIE['id_user'])." AND `pass` = '".shif(cookie_decrypt($_COOKIE['pass'],intval($_COOKIE['id_user'])))."' LIMIT 1"), 0)==1)
{
$user=get_user($_COOKIE['id_user']);
$_SESSION['id_user']=$user['id'];
mysql_query("UPDATE `user` SET `data_aut` = ".time().", `date_last` = ".time()." WHERE `id` = '$user[id]' LIMIT 1");
$user['type_input']='cookie';
}
else
{
setcookie('id_user');
setcookie('pass');
}
}

if (isset(
$user['activation']) && $user['activation']!=NULL// если аккаунт не активирован
{
$err[]='Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email, указанный при регистрации';
unset(
$user);
}


if (isset(
$user))
{

$tmp_us=mysql_fetch_assoc(mysql_query("SELECT `level` FROM `user_group` WHERE `id` = '$user[group_access]' LIMIT 1"));
$user['level']=$tmp_us['level'];

// Добавление отсутствующих полей 
if (!isset($user['activation']))
mysql_query('ALTER TABLE `user` ADD `activation` VARCHAR( 32 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL AFTER `sess`');

if (!isset(
$user['group_access'])) // перераспределение прав пользователей
{
// при переходе с версии ниже 6.5.1
mysql_query("ALTER TABLE `user` ADD `group_access` INT UNSIGNED NOT NULL DEFAULT '0' AFTER `level`");
mysql_query("DROP TABLE `accesses`");
mysql_query("DROP TABLE `user_acсess`");
$q=mysql_query("SELECT `id`,`level` FROM `user` WHERE `level` != '0'");
while (
$ank=mysql_fetch_assoc($q))
{

switch (
$ank['level']) {
case 
'1':$group='3';
case 
'2':$group='7';
case 
'3':$group='8';
case 
'4':$group=($ank['id']=='1'?'15':'9');
}
mysql_query("UPDATE `user` SET `group_access` = '$group' WHERE `id` = '$ank[id]' LIMIT 1");


}
}

if (isset(
$user['type_input']) && isset($_SERVER['HTTP_REFERER']) && !preg_match('#'.preg_quote($_SERVER['HTTP_HOST']).'#'$_SERVER['HTTP_REFERER']) && preg_match('#^https?://#i'$_SERVER['HTTP_REFERER']) && $ref=@parse_url($_SERVER['HTTP_REFERER']))
{
if (isset(
$ref['host']))
{
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user_ref` WHERE `id_user` = '$user[id]' AND `url` = '".my_esc($ref['host'])."'"), 0)==0)
mysql_query("INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`) VALUES ('$time', '$user[id]', '$user[type_input]', '".my_esc($ref['host'])."')");
else
mysql_query("UPDATE `user_ref` SET `time` = '$time' WHERE `id_user` = '$user[id]' AND `url` = '".my_esc($ref['host'])."'");
}


}

if (!isset(
$user['autorization']))
mysql_query("ALTER TABLE `user` ADD `autorization` SET( '0', '1' ) NOT NULL DEFAULT '0'");
if (!isset(
$user['ip_cl']))
mysql_query("ALTER TABLE `user` ADD `ip_cl` BIGINT( 20 ) NOT NULL AFTER `ip` , ADD `ip_xff` BIGINT( 20 ) NOT NULL AFTER `ip_cl`");



if (
$user['set_time_chat']!=NULL)$set['time_chat']=$user['set_time_chat'];
if (
$user['set_p_str']!=NULL)$set['p_str']=$user['set_p_str'];
$set['set_show_icon']=$user['set_show_icon'];

if (
$webbrowser// для web темы
{
if (
is_dir(H.'/core/themes/'.$user['set_them2']))$set['set_them']=$user['set_them2'];
else 
mysql_query("UPDATE `user` SET `set_them2` = '$set[set_them]' WHERE `id` = '$user[id]' LIMIT 1");
}
else
{
if (
is_dir(H.'/core/themes/'.$user['set_them']))$set['set_them']=$user['set_them'];
else 
mysql_query("UPDATE `user` SET `set_them` = '$set[set_them]' WHERE `id` = '$user[id]' LIMIT 1");
}

if (!isset(
$banpage))
{
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `ban` WHERE `id_user` = '$user[id]' AND (`time` > '$time' OR `view` = '0')"), 0)!=0)
{
header('Location: /pages/ban/'.SID);exit;
}
}


if (
$user['block_forever']==1){
header('Location: /pages/block/');
}



if (isset(
$ip2['add']))mysql_query("UPDATE `user` SET `ip` = ".ip2long($ip2['add'])." WHERE `id` = '$user[id]' LIMIT 1");
else 
mysql_query("UPDATE `user` SET `ip` = null WHERE `id` = '$user[id]' LIMIT 1");
if (isset(
$ip2['cl']))mysql_query("UPDATE `user` SET `ip_cl` = ".ip2long($ip2['cl'])." WHERE `id` = '$user[id]' LIMIT 1");
else 
mysql_query("UPDATE `user` SET `ip_cl` = null WHERE `id` = '$user[id]' LIMIT 1");
if (isset(
$ip2['xff']))mysql_query("UPDATE `user` SET `ip_xff` = ".ip2long($ip2['xff'])." WHERE `id` = '$user[id]' LIMIT 1");
else 
mysql_query("UPDATE `user` SET `ip_xff` = null WHERE `id` = '$user[id]' LIMIT 1");
if (
$ua)mysql_query("UPDATE `user` SET `ua` = '".my_esc($ua)."' WHERE `id` = '$user[id]' LIMIT 1");


mysql_query("UPDATE `user` SET `url` = '".my_esc($_SERVER['SCRIPT_NAME'])."' WHERE `id` = '$user[id]' LIMIT 1");
mysql_query("UPDATE `user` SET `sess` = '$sess' WHERE `id` = '$user[id]' LIMIT 1");

if (isset(
$sess{32})){
$collision_q=mysql_query("SELECT * FROM `user` WHERE `sess` = '$sess' AND `id` <> '$user[id]'");
while (
$collision mysql_fetch_assoc($collision_q))
{
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user_collision` WHERE `id_user` = '$user[id]' AND `id_user2` = '$collision[id]' OR `id_user2` = '$user[id]' AND `id_user` = '$collision[id]'"), 0)==0)
mysql_query("INSERT INTO `user_collision` (`id_user`, `id_user2`, `type`) values('$user[id]', '$collision[id]', 'sess')");
}
}

$collision_q=mysql_query("SELECT * FROM `user` WHERE `ip` = '$iplong' AND `ua` = '".my_esc($ua)."' AND `date_last` > '".(time()-600)."' AND `id` <> '$user[id]'");
while (
$collision mysql_fetch_assoc($collision_q))
{
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `user_collision` WHERE `id_user` = '$user[id]' AND `id_user2` = '$collision[id]' OR `id_user2` = '$user[id]' AND `id_user` = '$collision[id]'"), 0)==0)
mysql_query("INSERT INTO `user_collision` (`id_user`, `id_user2`, `type`) values('$user[id]', '$collision[id]', 'ip_ua_time')");
}

}
else
{
if (
$webbrowser)
$set['set_them']=$set['set_them2'];
if (
$ip && $ua)
{
if (
mysql_result(mysql_query("SELECT COUNT(*) FROM `guests` WHERE `ip` = '$iplong' AND `ua` = '".my_esc($ua)."' LIMIT 1"), 0)==1)
{
$guests=mysql_fetch_assoc(mysql_query("SELECT * FROM `guests` WHERE `ip` = '$iplong' AND `ua` = '".my_esc($ua)."' LIMIT 1"));


mysql_query("UPDATE `guests` SET `date_last` = ".time().", `url` = '".my_esc($_SERVER['SCRIPT_NAME'])."', `pereh` = '".($guests['pereh']+1)."' WHERE `ip` = '$iplong' AND `ua` = '".my_esc($ua)."' LIMIT 1");
}
else
{
mysql_query("INSERT INTO `guests` (`ip`, `ua`, `date_aut`, `date_last`, `url`) VALUES ('$iplong', '".my_esc($ua)."', '".time()."', '".time()."', '".my_esc($_SERVER['SCRIPT_NAME'])."')");
}

}
unset(
$access);
}


if (!isset(
$user) || $user['level']==0)
{
@
error_reporting(0);
@
ini_set('display_errors',false); // показ ошибок
if (function_exists('set_time_limit'))
@
set_time_limit(20); // Ставим ограничение на 20 сек
}



# зактытие сайта
if($set['guest_select']==&& $user['level']==0)
{
if(!isset(
$user))
{
header("Location: /err.php");
}else{
header("Location: /?act=exit");
}
}else{
}
# только гость
if (!isset($user) && $set['guest_select']=='1' && !isset($show_all))
{
header("Location: /?act=avtorize");
exit;
}


// Рейтинг!!!
if ($user['sand']==1){

if (isset(
$user))
{
$timeactiv=time() - $user['date_last'];
//if($timeactiv < rand(50,100))
if($timeactiv 1)
{
mysql_query("UPDATE `user` SET `perehodu` = '".($user['perehodu']+1)."' WHERE `id` = '$user[id]' LIMIT 1");
mysql_query("UPDATE `user` SET `perehodu1` = '".($user['perehodu1']+1)."' WHERE `id` = '$user[id]' LIMIT 1");
//if ($user['perehodu1'] > rand(50,100))
if ($user['perehodu1'] > 1)
{
mysql_query("UPDATE `user` SET `perehodu1` = '0' WHERE `id` = '$user[id]' LIMIT 1");
include 
'user_rating_ud.php';
}
echo 
mysql_error();
}
}
}

include_once 
H.'core/cuctema/delete_user.php';
if (
$_SERVER['PHP_SELF']!='/umenu.php' && $user['locked']==1){header("Location:/umenu.php");exit;}
if (
$user['locked']==1)
{
include_once 
'core/cuctema/head.php';
if(isset(
$_GET['open_page']))
{
$nt=$user['locked_time']-$time;
$left_time=floor($nt/60);
if(
$left_time==0)$lt=($user['locked_time']-$time)." сек.";
else 
$lt="$left_time мин.";
if(
$user['locked_time']>$time)$err="Свою страничку вы сможете открыть через $lt";
else
{
update_user('locked',0);
header("Location:?");
exit;
}
err();
}
elseif(isset(
$_GET['exit']))
{
setcookie('id_user');
setcookie('pass');
session_destroy();
header("Location:?");
exit;
}
$ank=$user;
if(
$ank['locked_reason']==1)$reason="У меня есть другой аккаунт на сайте";
elseif(
$ank['locked_reason']==2)$reason="Сайт слишком сложный. Не понимаю тут ничего";
elseif(
$ank['locked_reason']==3)$reason="На сайте скучно";
elseif(
$ank['locked_reason']==4)$reason="На сайте слишком строгие правила";
elseif(
$ank['locked_reason']==5)$reason="Модераторы несправедливые";
elseif(
$ank['locked_reason']==6)$reason="У меня тут мало друзей. Не с кем общаться.";
elseif(
$ank['locked_reason']==7)$reason="Рейтингоманы надоели";
elseif(
$ank['locked_reason']==8)$reason="Это временно. Я еще вернусь.";
elseif(
$ank['locked_reason']==9)$reason="Я провожу на сайте слишком много времени";
else 
$reason="Прочее";
echo 
"<div class='d1'>
Ваша страничка закрыта!</div>
<div class='d2'>Причина: 
$reason<br/>
Комментарий: "
.output_text($ank['locked_msg'])."<br/>n
<a href='?open_page'><b>Открыть</b></a> | <a href='?exit'><b>Выход</b></a>n
</div>n"
;
include_once 
'core/cuctema/foot.php';
exit;
}


###############################################/USER/##########################################################
?>
Онлайн: 0
Реклама