View file sys/inc/user.php

File size: 7.64Kb
<?php

	/*  
	Dcms-Fiera
	*/
if (isset($_SESSION['id_user']) && mysql_result(query("SELECT COUNT(*) FROM `user` WHERE `id` = '".$_SESSION['id_user']."' LIMIT 1"), 0) == 1)
{
$user = get_user($_SESSION['id_user']);

$tmp_us = mysql_fetch_assoc(query("SELECT `level` FROM `user_group` WHERE `id` = '".$user['group_access']."' LIMIT 1"));
$sqlup['userlevel'] = ", `level` = '".$tmp_us['level']."'";

$timeactiv = time() - $user['date_last'];
     if($timeactiv < 120)
     {
     $newtimeactiv = $user['time'] + $timeactiv;
     $sqlup['timeactiv'] = ", `time` = '".$newtimeactiv."'";
     unset($nevtimeactiv, $timeactiv);
     }
     else $sqlup['timeactiv'] = NULL;

     if ($webbrowser) # для web темы
     {
          if (is_dir(H.'style/themes/'.$user['set_them2']))
          {
          $set['set_them'] = $user['set_them2'];
          $sqlup['setthem'] = NULL;
          }
          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'] = NULL;
          }
          else
          {
          $sqlup['setthem'] = ", `set_them` = '".$set['set_them']."'";
          }
     }

     if (isset($ip2['add']))$sqlup['ip'] = ", `ip` = '".ip2long($ip2['add'])."'";
     else $sqlup['ip'] = NULL;

     if (isset($ip2['cl']))$sqlup['ip_cl'] = ", `ip_cl` = '".ip2long($ip2['cl'])."'";
     else $sqlup['ip_cl'] = NULL;

     if (isset($ip2['xff']))$sqlup['ip_xff'] = ", `ip_xff` = '".ip2long($ip2['xff'])."'";
     else $sqlup['ip_xff'] = NULL;

     if ($ua)$sqlup['ua'] = ", `ua` = '".my_esc($ua)."'";
     else $sqlup['ua'] = NULL;

$sqlup['url'] = ", `url` = '".my_esc($_SERVER['SCRIPT_NAME'])."'";
$sqlup['sess'] = ", `sess` = '".$sess."'";
query("UPDATE `user` SET `date_last` = '".$time."'".$sqlup['userlevel']."".$sqlup['timeactiv']."".$sqlup['setthem']."".$sqlup['ip']."".$sqlup['ip_cl']."".$sqlup['ip_xff']."".$sqlup['ua']."".$sqlup['url']."".$sqlup['sess']." WHERE `id` = '".$user['id']."' LIMIT 1");
$user['type_input']='session';

unset($sqlup);
}
elseif (!isset($input_page) && isset($_COOKIE['id_user']) && isset($_COOKIE['pass']) && $_COOKIE['id_user'] && $_COOKIE['pass'])
{
exit(header("Location: /login.php?return=".urlencode($_SERVER['REQUEST_URI'])."&amp;"));
}



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


if (isset($user))
{

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(query("SELECT COUNT(*) FROM `user_ref` WHERE `id_user` = '$user[id]' AND `url` = '".my_esc($ref['host'])."'"), 0) == 0)
query("INSERT INTO `user_ref` (`time`, `id_user`, `type_input`, `url`) VALUES ('".$time."', '".$user['id']."', '".$user['type_input']."', '".my_esc($ref['host'])."')");
else
query("UPDATE `user_ref` SET `time` = '".$time."' WHERE `id_user` = '".$user['id']."' AND `url` = '".my_esc($ref['host'])."'");
}

}

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 (!isset($banpage) and mysql_result(query("SELECT COUNT(*) FROM `ban` WHERE `id_user` = '$user[id]' AND (`time` > '$time' OR `view` = '0')"), 0)!=0)

exit(header('Location: /ban.php?'));

$collision_q=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(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)
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(query("SELECT COUNT(*) FROM `guests` WHERE `ip` = '$iplong' AND `ua` = '".my_esc($ua)."' LIMIT 1"), 0)==1)
{
$guests=mysql_fetch_assoc(query("SELECT * FROM `guests` WHERE `ip` = '$iplong' AND `ua` = '".my_esc($ua)."' LIMIT 1"));
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{
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) and  $user['level']>0)
{
error_reporting(E_ALL); // включаем показ ошибок
ini_set('display_errors',true); // включаем показ ошибок
if (function_exists('set_time_limit'))set_time_limit(20); # Ставим ограничение на 20 сек
}

#	Включаем режим если гость кидаем на авторизацию 
if (!isset($user) and $set['guest_select']==1 and !isset($show_all))
exit(header('Location: /aut.php'));


error_reporting(E_ALL); // включаем показ ошибок
ini_set('display_errors',true); // включаем показ ошибок





/*

модуль возврощает юзера на обратную странцу после реги или авторизации на сайте 

---------------------------
*После авторизации на сайте ,
юзер вернет на страницу до того как он попал на страницу авторизации  .
* при этом юзер не кинет на стартовую страницу
---------------------------
*После регистрации на сайте ,юзер вернет на страницу до того как он попал на страницу регистрации и выведет сообщение
 ,например было он в альбомах вернет его в альбомы  и т.п (beta)
---------------------------

*/
#	при условии что модуль включен хотя б один пункт 	
if ($set['reg_ref']==1 or $set['aut_ref']==1)
{
#	выводим сообщения
if (isset($_GET['reg_ref']))msg('Регистрация прошла успешно,вы вернулись на страницу до регистрации');
if (isset($_GET['aut_ref']))msg('Вы авторизованы и вернуты на страницу до авторизации');
#	записываем сесию страницу ,исключаем страницы на которые нам не надо возврощаться 
if ($_SERVER['PHP_SELF']!='/aut.php' and
  $_SERVER['PHP_SELF']!='/reg.php' and
  $_SERVER['PHP_SELF']!='/login.php' and
  #	Записываем в ссесию страницу для возврата 
  $_SERVER['PHP_SELF']!='/captcha.php')$_SESSION['ref_loc']=$_SERVER['REQUEST_URI'];

}