Файл: sys/inc/user.php
Строк: 52
<?php
/* *
* Dcms-Fiera 3x
*/
$sessIdUser = isset($_SESSION['id_user']) ? $_SESSION['id_user'] : 0;
if ($sessIdUser) {
if ($db->query('SELECT COUNT(*) FROM `user` WHERE `id`=?i', [$sessIdUser])->el() == 1) {
$user = get_user($sessIdUser);
include_once H . 'sys/inc/shif.php';
if (empty($_COOKIE['pass']) or empty($_COOKIE['id_user'])) {
setcookie('id_user', $user['id'], time()+60*60*24*365);
setcookie('pass', cookie_encrypt($user['pass'], $user['id']), time()+60*60*24*365);
}
$timeactiv = time() - $user['date_last'];
if ($timeactiv < 120) {
$sqlup['timeactiv'] = ', `time`=`time`+' . $timeactiv;
unset($nevtimeactiv, $timeactiv);
} else {
$sqlup['timeactiv'] = '';
}
if ($webbrowser) { # для web темы
if (is_dir(H . 'style/themes/' . $user['set_them2'])) {
$set['set_them'] = $user['set_them2'];
$sqlup['setthem'] = '';
} else {
$sqlup['setthem'] = ', `set_them2`="' . $set['set_them'] . '"';
}
} else {
if (is_dir(H . 'style/themes/' . $user['set_them'])) {
$set['set_them'] = $user['set_them'];
$sqlup['setthem'] = '';
} else {
$sqlup['setthem'] = ', `set_them`="' . $set['set_them'] . '"';
}
}
// перенесено из thead.php
if ($set['title'] != null) {
$url_title = ', `url_title`="' . $set['title'] . '"';
} else {
$url_title = '';
}
//
$where = $sqlup['timeactiv'] . $sqlup['setthem'] . $url_title;
if (isset($ip2['add'])) {
$sqlup['ip'] = ip2long($ip2['add']);
} else {
$sqlup['ip'] = 0;
}
if (isset($ip2['cl'])) {
$sqlup['ip_cl'] = ip2long($ip2['cl']);
} else {
$sqlup['ip_cl'] = 0;
}
if (isset($ip2['xff'])) {
$sqlup['ip_xff'] = ip2long($ip2['xff']);
} else {
$sqlup['ip_xff'] = 0;
}
if ($ua) {
$sqlup['ua'] = $ua;
} else {
$sqlup['ua'] = 'unknown';
}
$sqlup['url'] = $_SERVER['REQUEST_URI'];
$hash = md5(md5($ip.md5($ua).$user['id']));
$pattern = 'UPDATE `user` SET `hash`=?, `date_last`=?i, `level`=?, `ip`=?i, `ip_cl`=?i, `ip_xff`=?i, `ua`=?, `url`=?, `sess`=? ?q WHERE `id`=?i LIMIT ?i';
$data = [$hash, $time, $user['level'], $sqlup['ip'], $sqlup['ip_cl'], $sqlup['ip_xff'], $sqlup['ua'], $sqlup['url'], $sess, $where, $user['id'], 1];
$db->query($pattern, $data);
$user['type_input'] = 'session';
unset($sqlup);
}
} elseif (!isset($input_page) && isset($_COOKIE['id_user'], $_COOKIE['pass']) && $_COOKIE['id_user'] && $_COOKIE['pass']) {
exit(header('Location: /login.php?return=' . urlencode($_SERVER['REQUEST_URI']) . '&'));
}
// если аккаунт не активирован
if (isset($user['activation']) && $user['activation'] != null) {
$err[] = 'Вам необходимо активировать Ваш аккаунт по ссылке, высланной на Email, указанный при регистрации';
unset($user);
}
if (isset($user)) {
//записываем посещание реферов
if (isset($user['type_input'], $ref['host'], $_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 (!$db->query('SELECT COUNT(*) FROM `user_ref` WHERE `id_user`=?i AND `url`=?',
[$user['id'], $ref['host']])->el()) {
$db->query('INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`)
VALUES (?i, ?i, ?, ?)', [time(), $user['id'], $user['type_input'], $ref['host']]);
} else {
$db->query('UPDATE `user_ref` SET `time`=?i WHERE `id_user`=?i AND `url`=?',
[time(), $user['id'], $ref['host']]);
}
}
// указываем число пунктов на страницу
if ($user['set_p_str'] != null) {
$set['p_str'] = $user['set_p_str'];
}
// большие или маленткие иконки (вероятно будет удалено)
$set['set_show_icon'] = $user['set_show_icon'];
// бан пользователя
if (!isset($banpage)) {
if ($db->query('SELECT COUNT(*) FROM `ban` WHERE `id_user`=?i AND (`time`>?i OR `view`=?)',
[$user['id'], time(), '0'])->el()) {
exit(header('Location: /ban.php?'));
}
}
} else {
// если веб тема то включаем ту что в админки указана
if ($webbrowser) {
$set['set_them']=$set['set_them2'];
}
// записываем гостей
$sc = isset($_SERVER['SCRIPT_NAME']) ? $_SERVER['SCRIPT_NAME'] : '/';
if ($ip && $ua) {
if ($db->query('SELECT COUNT(*) FROM `guests` WHERE `ip`=?i AND `ua`=? LIMIT ?i',
[$iplong, $ua, 1])->el() == 1) {
$pattern = 'UPDATE `guests` SET `date_last`=?i, `url`=?, `pereh`=`pereh`+1 WHERE `ip`=?i AND `ua`=? LIMIT ?i';
$data = [time(), $sc, $iplong, $ua, 1];
$db->query($pattern, $data);
} else {
$db->query("INSERT INTO `guests` (`ip`, `ua`, `date_aut`, `date_last`, `url`)
VALUES (?i, ?, ?i, ?i, ?)", [$iplong, $ua, time(), time(), $sc]);
}
}
unset($access); // че за херня :-)?
}
// Показ ошибок
if (isset($user) && $user['group_access'] > 1 && $set['show_err_php'] == 1) {
error_reporting(E_ALL);
ini_set('display_errors', true);
}
// Включаем режим если гость кидаем на авторизацию
if (!isset($user) && $set['guest_select'] == 1 && !isset($show_all)) {
exit(header('Location: /aut.php'));
}
// Загрузка дополнительных плагинов
$Search = glob(H . 'sys/user_inc/*.php');
foreach ($Search as $load_plugins) {
sort($Search);
include_once $load_plugins;
}