Файл: includes/start.php
Строк: 206
<?php
session_name('SID');
session_start();
/*//Режим отладки
error_reporting(7);
ini_set('display_errors', 7);
ini_set('html_errors', 7);
ini_set('error_reporting', 7); */
//mb_internal_encoding('UTF-8');
@error_reporting(E_ALL ^ E_NOTICE);
@ini_set('display_errors', false);
@ini_set('html_errors', false);
@ini_set('error_reporting', E_ALL ^ E_NOTICE);
@ini_set('url_rewriter.tags', '');
@ini_set('session.use_trans_sid', 1);
$SID =session_id();
$SID=md5(rand(09009,999999));
$starttime = microtime(1);
if (version_compare(PHP_VERSION, '5.2.1') < 0) {
die('<b>Ошибка! Версия PHP должна быть 5.2.1 или выше!</b>');
}
class Debug
{
public function startTimer()
{
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$starttime = $mtime;
}
public function endTimer()
{
global $starttime;
$mtime = microtime ();
$mtime = explode (' ', $mtime);
$mtime = $mtime[1] + $mtime[0];
$endtime = $mtime;
$totaltime = round (($endtime - $starttime), 5);
return $totaltime;
}
}
$debag = new Debug;
$debag->startTimer();
if (get_magic_quotes_gpc()) {
$in = array(&$_GET, &$_POST, &$_COOKIE);
while (list($k, $v) = each($in)) {
foreach ($v as $key => $val) {
if (!is_array($val)) {
$in[$k][$key] = stripslashes($val);
continue;
}
$in[] = &$in[$k][$key];
}
}
unset ($in);
if (!empty ($_FILES)) {
foreach ($_FILES as $k => $v) {
$_FILES[$k]['name'] = stripslashes((string) $v['name']);
}
}
}
$level = 0;
$folder_level = '';
while (!file_exists($folder_level.'includes.php') && $level < 5) {
$folder_level .= '../';
++$level;
}
unset($level);
define('H', $folder_level);
define('F', '/forum/');
define('H2', '/');
foreach ($_GET as $check_url) {
if (is_string($check_url) && !preg_match('#^(?:[a-z0-9_-/]+|.+(?!/))*$#i', $check_url)) {header ('Location: /index.php?err=403'.SID);exit;
}}
unset($check_url);
//Буфферизация вывода
if (@extension_loaded('zlib')) {
@ini_set('zlib.output_compression_level', 3);
// ob_start('ob_gzhandler');
} else {
ob_start();
}
$sql_time = 0;
$queries = 0;
function query($query) {
global $sql_time, $queries;
$queries++;
$mtime = explode (' ', microtime ());
$starttime = $mtime[1] + $mtime[0];
$query = mysql_query($query);
$mtime = explode (' ', microtime ());
$endtime = $mtime[1] + $mtime[0];
$sql_time = round (($endtime - $starttime), 5);
return $query;
}
$db = @mysql_connect(DBHOST, DBUSER, DBPASS) or die('Невозможно подключится к БД!');
mysql_select_db(DBNAME) or die('Невозможно подключится к БД!');
/*query("SET NAMES 'utf8'");
query("SET character_set_client='utf8'");
query("SET character_set_connection='utf8'");
query("SET character_set_results='utf8'");
###*/
$agn = mysql_real_escape_string(htmlentities(substr($_SERVER['HTTP_USER_AGENT'], 0, 100), ENT_QUOTES));
require_once H.'includes/ip.php';
$ipinit = new ipinit();
$ipl = $ipinit->ip;
$ipp = long2ip($ipl);
unset ($ipinit);
// Дата и время
date_default_timezone_set('Europe/Moscow');
$time = $_SERVER['REQUEST_TIME'];
// Проверка переменных
function check($str) {
$str = htmlentities(trim($str), ENT_QUOTES, 'UTF-8');
$str = nl2br($str);
$str = strtr($str, array (chr(0)=> '',chr(1)=> '',chr(2)=> '',chr(3)=> '',chr(4)=> '',chr(5)=> '',chr(6)=> '',chr(7)=> '',chr(8)=> '',chr(9)=> '',chr(10)=> '',chr(11)=> '',chr(12)=> '',chr(13)=> '',chr(14)=> '',chr(15)=> '',chr(16)=> '',chr(17)=> '',chr(18)=> '',chr(19)=> '',chr(20)=> '',chr(21)=> '',chr(22)=> '',chr(23)=> '',chr(24)=> '',chr(25)=> '',chr(26)=> '',chr(27)=> '',chr(28)=> '',chr(29)=> '',chr(30)=> '',chr(31)=> ''));
$str = str_replace("'", "'", $str);
$str = str_replace('\', "\", $str);
$str = str_replace("|", "I", $str);
$str = str_replace("||", "I", $str);
$str = str_replace("/\$/", "$", $str);
$str = mysql_real_escape_string($str);
$str = iconv('utf-8', 'windows-1251', $str);
$str = iconv('windows-1251', 'utf-8', $str);
return $str;
}
// Получаем основные переменные
$sid = isset ($_REQUEST['sid']) ? abs(intval(check($_REQUEST['sid']))) : false;
$id = isset ($_REQUEST['id']) ? abs(intval(check($_REQUEST['id']))) : false;
$nk = isset ($_REQUEST['nk']) ? abs(intval(check($_REQUEST['nk']))) : false;
$m = isset ($_REQUEST['m']) ? abs(intval(check($_REQUEST['m']))) : false;
$page = isset ($_REQUEST['page']) && $_REQUEST['page'] > 0 ? abs(intval(check($_REQUEST['page']))) : 1;
$start = isset ($_REQUEST['start']) ? abs(intval(check($_REQUEST['start']))) : 0;
$act = isset ($_REQUEST['act']) ? check($_REQUEST['act']) : '';
$action = isset ($_REQUEST['action']) ? check($_REQUEST['action']) : '';
$mod = isset ($_REQUEST['mod']) ? check($_REQUEST['mod']) : '';
$do = isset ($_REQUEST['go']) ? check($_REQUEST['go']) : '';
$err = !empty ($_REQUEST['err']) ? check($_REQUEST['err']) : false;
$ref=rand(10000,1000000);
//Задаем пустое значение
$user_id = false;
$user_sid = false;
$user_ps = false;
// Авторизация по сессии
if (isset ($_SESSION['sesid']) && isset ($_SESSION['sesps'])) {
$user_id = intval($_SESSION['sesid']);
$user_ps = check($_SESSION['sesps']);
}
// Авторизация по COOKIE
elseif (isset ($_COOKIE['cookid']) && isset ($_COOKIE['cookps'])) {
$user_id = intval(base64_decode($_COOKIE['cookid']));
$_SESSION['sesid'] = $user_id;
$user_ps = check(md5($_COOKIE['cookps']));
$_SESSION['sesps'] = $user_ps;
$cookauth = true;
}
// Запрос в базе данных по юзеру
if ($user_id && $user_ps) {
$req = query("SELECT * FROM `users` WHERE `id` = '$user_id' LIMIT 1");
if (mysql_num_rows($req)) {
$user = mysql_fetch_assoc($req);
if ($user_ps === $user['pass']) {
// Получаем данные пользователя
$login = $user['user'];
$level = $user['level'];
$max = $user['max'];
}
else {
// Если пароль не совпадает, уничтожаем переменные сессии и чистим куки
unset ($_SESSION['sesid']);
unset ($_SESSION['sesps']);
setcookie('cookid', '');
setcookie('cookps', '');
$user_id = false;
$user_sid = false;
$user_ps = false;
}
}
else {
// Если юзер не найден, уничтожаем переменные сессии и чистим куки
unset ($_SESSION['sesid']);
unset ($_SESSION['sesps']);
setcookie('cookid', '');
setcookie('cookps', '');
$user_id = false;
$user_ps = false;
}
}
// определяем реферер
if(!isset($_REQUEST['ref']) && isset($_SESSION['ref']))$ref = abs(intval(check($_SESSION['ref'])));
else {$ref = abs(intval(check($_REQUEST['ref'])));
$_SESSION['ref']=$_REQUEST['ref'];}
// Подключаем настройки из БД
$set = mysql_fetch_assoc(query ("Select * from chats"));
////////////////// Боты ///////////////////////
$user_um = '<b>'.$set['umnik'].'</b>'; //
$user_prod = '<b>'.$set['baryga'].'</b>'; //
$user_shut = '<b>'.$set['shut'].'</b>'; //
$user_anek = '<b>'.$set['anek'].'</b>'; //
$user_tupica = '<b>'.$set['tupica'].'</b>'; //
$user_svaisch = '<b>'.$set['svaisch'].'</b>'; //
$user_system = '<b>'.$set['system'].'</b>'; //
$user_znatok = '<b>'.$set['znatok'].'</b>'; //
$user_flyder = '<b>'.$set['flyder'].'</b>'; //
$mafiozi = 'Мафиози';
$user_barmen = '<b>'.$set['barmen'].'</b>'; //
/////////////////////////////////////////////////
if($set['oroom_name']=='')$set['oroom_name'] = 'Общая комната';
if($set['dom']=='')$set['dom']='1chats.ru';
//Подключаем остальные файлы
require_once(H."includes/func/func.php");
require_once(H."includes/func/text.php");
include_once H."includes/style.php";
require_once(H."includes/func/user.php");
$banl = mysql_fetch_assoc(query ("Select * from bannlist WHERE ip = '".$ipp."' and soft = '".$agn."' LIMIT 1;"));
if (mysql_affected_rows()>=1){
$align="center";
$title="Баня";
head();
echo '<b>'.user($banl['who_id']).'</b> забанил вас по IP и SOFT!<br />Причина: <b>'.$banl[why].'</b><br />';
echo '<br />';
echo gb.'<a href="index">На главную</a>'.div;
foot();
}
$b_ip = query ("Select * from bannip WHERE `ip` = '$ipp';");
if (mysql_num_rows($b_ip)) {
$align="center";
$title="Баня";
head();
echo 'Ваш IP забаннен!<br />';
echo '<br />';
echo gb.'<a href="index">На главную</a>'.div;
foot();
}
if (isset($user)){
if ($user['id']!=1){
if ($user['bann']>$time){
$align='center';
$title='Баня';
head();
echo '<b>'.user_inf2($user['whobann'],'user').'</b> забаннил вас на <b>'.kikt($user['bann']).'</b><br />Причина: <b>'.$user['whybann'].'</b><br />';
echo '<br />';
echo gb.'<a href="index">На главную</a>'.div;
foot();
}
if ($user['odobr']!=0){
$align='center';
$title='Стоп!';
head();
if (isset($_GET['exit'])){
unset ($_SESSION['sesid']);
unset ($_SESSION['sesps']);
setcookie('cookid', '');
setcookie('cookps', '');
header('Location: /?'.SID);
}
if ($user['odobr']==1){
echo '<b>Вы получите доступ к сайту только после одобрения администрацией!</b><br /><b>Не регистрируйтесь повторно, за регу нескольких ников вы будете забаннены!</b><br />';
echo '<b>Попробуйте зайти позже.</b><br />';
}else if ($user['odobr']==2){
echo "<b>Извините, вам отказано в доступе к чату!</b><br />";
}
echo '<br /><a href="?exit">Выход (убить сессию)</a><br/>';
echo '<br />';
echo gb.'<a href="index">На главную</a>'.div;
foot();
}
}
}
include_once H."includes/bot_func.php";
include_once H."includes/enter_menu.php";
// Удаляем из таблици всех кто не активен в чате $set['time_aut'] секунд
query("DELETE FROM `who` WHERE `time` < '".($time-$set['time_aut'])."'");
if ((isset($user['id'])&&$user["posts"]>=200)&&($user["level"]<1)){
$message = "Поздравляю [b]".$user['user']."[/b]!!! Вы набрали необходимое колличество постов и вам присвоен уровень <b>".lev_neme(1)."</b>.";
query("UPDATE users SET status = '".lev_neme(1)."', level = '1' WHERE id = '".$user["id"]."';");
query ("INSERT INTO privat (user,user_id,to_user,to_id,time,msg) VALUES ('$user_system','0','".$user['user']."','".$user['id']."','$time','$message')");
} else if ((isset($user['id'])&&$user["posts"]>=400)&&($user["level"]<2)){
$message = "Поздравляю [b]".$user["user"]."[/b]!!! Вы набрали необходимое колличество постов и вам присвоен уровень <b>".lev_neme(2)."</b>.";
query("UPDATE users SET status = '".lev_neme(2)."', level = '2' WHERE id = '".$user["id"]."';");
query ("INSERT INTO privat (user,user_id,to_user,to_id,time,msg) VALUES ('$user_system','0','".$user['user']."','".$user['id']."','$time','$message')");
} else if ((isset($user['id'])&&$user["posts"]>=600)&&($user["level"]<3)){
$message = "Поздравляю [b]".$user["user"]."[/b]!!! Вы набрали необходимое колличество постов и вам присвоен уровень <b>".lev_neme(3)."</b>.";
query("UPDATE users SET status = '".lev_neme(3)."', level = '3' WHERE id = '".$user["id"]."';");
query ("INSERT INTO privat (user,user_id,to_user,to_id,time,msg) VALUES ('$user_system','0','".$user['user']."','".$user['id']."','$time','$message')");
}
// Подсчитываем онлайн мах в чате
$yy = mysql_result(query('SELECT COUNT(*) FROM `who`'),0);
$fgf = mysql_result(query("SELECT COUNT(*) FROM `online` "),0);
if($fgf == 0){
$gfh = mysql_fetch_assoc(query ("Select * from online LIMIT 1;"));
if($yy>$gfh['onl'])query("INSERT INTO online (onl,date,time) VALUES ('$yy','".date("d.m.Y")."','".$time."')");
}else{
$gfh = mysql_fetch_assoc(query ("Select * from online LIMIT 1;"));
if($yy>$gfh['onl'])query("UPDATE online SET `onl` = '".$yy."', `date` = '".date("d.m.Y")."', `time` = '".$time."';");
}
/*if($sid!=1){
$align="center";
$title="Работы";
head();
echo 'Чат временно недоступен.<br />';
foot();
}*/
?>