View file core/includes/user.php

File size: 4.14Kb
<?

$user = false;
if (empty($_SESSION['user_id']) AND isset($_COOKIE['user_id'], $_COOKIE['user_pass'])) {
	$user_id = (int) $_COOKIE['user_id'];	
	$user_pass = $_COOKIE['user_pass'];
	$check = $sql->rowCount("SELECT * FROM `users` where `id` = ? AND `password` = ?", [$user_id, $user_pass]);
	if ($check == 1) {
		$_SESSION['user_id'] = $user_id;
		//Таким образом мы обновляем время жизни куки
		cookie('user_id', $user_id, $set['user_cookie']);
		cookie('user_pass', $user_pass, $set['user_cookie']);
	} else {
		unset($_SESSION['user_id']);
		cookie('user_id');
		cookie('user_pass');
	}
}

if (isset($_SESSION['user_id'])) {
	$user = user::data($_SESSION['user_id']);
}

if ($user) {
	$times  = time() - $user['date_last'];
	$timesCache = $user['times'];
    if ($times < 120) {
        $user_update[] = "`times` = `times`+'{$times}'";
		$timesCache = ($user['times'] + $times);
    }
	$user_update[] = "`date_last` = '{$system['time']}'";
	$user_update[] = "`ua` = '{$system['ua']}'";
	$user_update[] = "`ip` = '{$system['ip']}'";
	$user_update[] = "`url` = '{$system['urlPage']}'";
	
	if ($browser->isTablet()) { 
		$browsersql = 'tablet';
	}
	if ($browser->isMobile() AND !$browser->isTablet()) { 
		$browsersql = 'mobile';
	}
	if (!$browser->isMobile() AND !$browser->isTablet()) { 
		$browsersql = 'web';
	}
	$user_update[] = "`browser` = '{$browsersql}'";

	$sql->query("UPDATE `users` SET ". implode(', ', $user_update)." WHERE `id` = ". $user['id']);
	
	//Перезаписываем время последнего посищения
	//* Что бы не перезаписывать весь кэш файл обращаясь к базе
	$data_replace_one = 
	array (
		'NameKey' => $user['id'],
		'type' => 'users',
		'replace' => 
	array (
		'date_last' => $system['time'],
		'browser' => $browsersql,
		'url' => $system['urlPage'],
		'ip' => $system['ip'],
		'ua' => $system['ua'],
		'times' => $timesCache,			
		),
	);
	
	$data_replace_two = 
	array (
		'NameKey' => $user['link'],
		'type' => 'users',
		'replace' => 
	array (
		'browser' => $browsersql,	
		'date_last' => $system['time'],
		'url' => $system['urlPage'],
		'ip' => $system['ip'],
		'ua' => $system['ua'],		
		'times' => $timesCache,			
		),
	);
	
	CacheHade::replace($data_replace_one);	
	CacheHade::replace($data_replace_two);		
	unset($times);
}

//Если юзер выбрал автоматическое определение часового пояса
if ($user AND $system['BrowserTimeZone'] AND $user['timezone'] == 99) {
	$user['timezone'] = $system['BrowserTimeZone'];	
}

//Защита от проникновения в админку ,от тех кто забыл установить нужные ограничения доступа .
if ((!$user OR $user['id_level'] == 0) AND preg_match('#^/apanel/#', $urlPage)) {
	exit(header('Location: /'));
}

/*
$logid = ($user ? $user['id'] : 0);

$text_log = "
-> ". date("d.m.y - H:i:s") ."
-> ". $_SERVER['REMOTE_ADDR'] ."
-> ". $_SERVER['REQUEST_URI'] ."
-> ". $_SERVER['SCRIPT_FILENAME'];

if(isset($_GET) AND count($_GET) > 0)
{
	$arr_l = null;
	foreach($_GET as $key=>$val)
	{
		if (is_string($val) AND strlen($val) > 2000)
		$val = substr($val,0,2000);
		$arr_l.= '-> '.$key ."=>". $val ."";
	}
	$fp = fopen(H."files/logs/". date("d.m.y") ."-". $logid  .".txt","a");
	fwrite($fp ,"----------------------------------------\n-> GET {$text_log}\n". $arr_l."\n");
	fclose($fp);
	reset($_GET);
}

if(isset($_POST) AND count($_POST) > 0)
{
	$arr_l = null;
	foreach($_POST as $key=>$val)
	{
		if (is_string($val) AND strlen($val) > 2000)
		$val = substr($val,0,2000);
		$arr_l.= '-> '.$key ."=>". $val ."\n";
	}
	$fp = fopen(H."files/logs/". date("d.m.y") ."-". $logid .".txt","a");
	fwrite($fp ,"----------------------------------------\n-> POST {$text_log}\n{$arr_l}\n" .$arr_l."\n");
	fclose($fp);
	reset($_POST);
}
unset($fp,$key,$arr_l,$text_log);


if (!$user AND !preg_match('#^/user/login#', $urlPage) AND !preg_match('#^/user/signin#', $urlPage)) {
	$_SESSION['url'] = $system['urlPage'];
}
*/