View file adm_panel/user.php

File size: 11.71Kb
<?
include_once '../sys/inc/start.php';
include_once '../sys/inc/compress.php';
include_once '../sys/inc/sess.php';
include_once '../sys/inc/home.php';
include_once '../sys/inc/settings.php';
include_once '../sys/inc/db_connect.php';
include_once '../sys/inc/ipua.php';
include_once '../sys/inc/fnc.php';
include_once '../sys/inc/shif.php';
include_once '../sys/inc/adm_check.php';
include_once '../sys/inc/user.php';
user_access('user_prof_edit',null,'index.php?'.SID);
adm_check();




if (isset($_GET['id']))$ank['id']=intval($_GET['id']);
else {header("Location: /index.php?".SID);exit;}


if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `id` = '$ank[id]' LIMIT 1"),0)==0){header("Location: /index.php?".SID);exit;}


$ank=get_user($ank['id']);
if ($user['level']<=$ank['level']){header("Location: /index.php?".SID);exit;}


$set['title']='Профиль пользователя '.$ank['nick'];
include_once '../sys/inc/thead.php';
title();


if (isset($_POST['save'])){

if (isset($_POST['nick']) && $_POST['nick']!=$ank['nick'])
{

if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user` WHERE `nick` = '".my_esc($_POST['nick'])."'"),0)==1)
$err[]='Ник &quot;'.$_POST['nick'].'&quot; уже занят';
elseif (user_access('user_change_nick'))
{
$nick=$_POST['nick'];
if( !preg_match("#^([A-zА-я0-9\-\_\ ])+$#ui", $nick))$err[]='В нике присутствуют запрещенные символы';
if (utf8_strlen($nick)<3)$err[]='Короткий ник';
if (utf8_strlen($nick)>32)$err[]='Длина ника превышает 32 символа';
if (!isset($err))
{
admin_log('Пользователи','Изменение ника',"Ник '$ank[nick]' изменен на '[url=/info.php?id=$ank[id]]".$nick."[/url]'");
$ank['nick']=$nick;
mysql_query("UPDATE `user` SET `nick` = '".my_esc($ank['nick'])."' WHERE `id` = '$ank[id]' LIMIT 1");
}
}
else $err[]='У Вас нет привилегий на изменение ника пользователя';



}




$ank['set_translit']=(isset($_POST['set_translit']) && $_POST['set_translit'])?'1':'0';
mysql_query("UPDATE `user` SET `set_translit` = '$ank[set_translit]' WHERE `id` = '$ank[id]' LIMIT 1");

$ank['set_files']=(isset($_POST['set_files']) && $_POST['set_files'])?'1':'0';
mysql_query("UPDATE `user` SET `set_files` = '$ank[set_files]' WHERE `id` = '$ank[id]' LIMIT 1");


if (isset($_POST['set_time_chat']) && ($_POST['set_time_chat']>=0 && $_POST['set_time_chat']<=900))
{
$ank['set_time_chat']=(int)$_POST['set_time_chat'];
mysql_query("UPDATE `user` SET `set_time_chat` = '$ank[set_time_chat]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='Ошибка во времени автообновления';

if (isset($_POST['set_p_str']) && ($_POST['set_p_str']>0 && $_POST['set_p_str']<=100))
{
$ank['set_p_str']=(int)$_POST['set_p_str'];
mysql_query("UPDATE `user` SET `set_p_str` = '$ank[set_p_str]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='Неправильное количество пунктов на страницу';




if (isset($_POST['ank_name']) && utf8_strlen(esc(stripcslashes(htmlspecialchars($_POST['ank_name']))))<=32)
{
$ank['ank_name']=esc(stripcslashes(htmlspecialchars($_POST['ank_name'])));
mysql_query("UPDATE `user` SET `ank_name` = '$ank[ank_name]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='Имя не может быть длиннее 32 символов';

if (isset($_POST['ank_d_r']) && (is_numeric($_POST['ank_d_r']) && $_POST['ank_d_r']>0 && $_POST['ank_d_r']<=31 || $_POST['ank_d_r']==NULL))
{
$ank['ank_d_r']=$_POST['ank_d_r'];
if ($ank['ank_d_r']==null)$ank['ank_d_r']='null';
mysql_query("UPDATE `user` SET `ank_d_r` = $ank[ank_d_r] WHERE `id` = '$ank[id]' LIMIT 1");
if ($ank['ank_d_r']=='null')$ank['ank_d_r']=NULL;
}
else $err[]='Неверный формат дня рождения';

if (isset($_POST['ank_m_r']) && ($_POST['ank_m_r']>0 && $_POST['ank_m_r']<=12 || $_POST['ank_m_r']==NULL))
{
$ank['ank_m_r']=(int)$_POST['ank_m_r'];
if ($ank['ank_m_r']==null)$ank['ank_m_r']='null';
mysql_query("UPDATE `user` SET `ank_m_r` = $ank[ank_m_r] WHERE `id` = '$ank[id]' LIMIT 1");
if ($ank['ank_m_r']=='null')$ank['ank_m_r']=NULL;
}
else $err[]='Неверный формат месяца рождения';

if (isset($_POST['ank_g_r']) && ($_POST['ank_g_r']>0 && $_POST['ank_g_r']<=date('Y') || $_POST['ank_g_r']==NULL))
{
$ank['ank_g_r']=(int)$_POST['ank_g_r'];
if ($ank['ank_g_r']==null)$ank['ank_g_r']='null';
mysql_query("UPDATE `user` SET `ank_g_r` = $ank[ank_g_r] WHERE `id` = '$ank[id]' LIMIT 1");
if ($ank['ank_g_r']=='null')$ank['ank_g_r']=NULL;
}
else $err[]='Неверный формат года рождения';

if (isset($_POST['ank_city']) && utf8_strlen(esc(stripcslashes(htmlspecialchars($_POST['ank_city']))))<=32)
{
$ank['ank_city']=esc(stripcslashes(htmlspecialchars($_POST['ank_city'])));
mysql_query("UPDATE `user` SET `ank_city` = '$ank[ank_city]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='Название города не может быть длиннее 32 символов';

if (isset($_POST['ank_icq']) && (strlen($_POST['ank_icq'])>=5 && strlen($_POST['ank_icq'])<=9 || $_POST['ank_icq']==NULL))
{
$ank['ank_icq']=(int)$_POST['ank_icq'];
if ($ank['ank_icq']==null)$ank['ank_icq']='null';
mysql_query("UPDATE `user` SET `ank_icq` = $ank[ank_icq] WHERE `id` = '$ank[id]' LIMIT 1");
if ($ank['ank_icq']=='null')$ank['ank_icq']=NULL;
}
else $err[]='Неверный формат ICQ';

if (isset($_POST['ank_n_tel']) && (strlen($_POST['ank_n_tel'])>=5 && strlen($_POST['ank_n_tel'])<=11 || $_POST['ank_n_tel']==NULL))
{
$ank['ank_n_tel']=(int)$_POST['ank_n_tel'];
mysql_query("UPDATE `user` SET `ank_n_tel` = '$ank[ank_n_tel]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='Неверный формат номера телефона';

if (isset($_POST['ank_mail']) && (preg_match('#^[a-z0-9_\-\.]+\@[a-z0-9_\-\.]+$#iu',$_POST['ank_mail']) || $_POST['ank_mail']==NULL))
{
$ank['ank_mail']=esc($_POST['ank_mail']);
mysql_query("UPDATE `user` SET `ank_mail` = '$ank[ank_mail]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='Неверный E-mail';


if (isset($_POST['ank_o_sebe']) && utf8_strlen(esc(stripcslashes(htmlspecialchars($_POST['ank_o_sebe']))))<=512)
{
$ank['ank_o_sebe']=esc(stripcslashes(htmlspecialchars($_POST['ank_o_sebe'])));
mysql_query("UPDATE `user` SET `ank_o_sebe` = '$ank[ank_o_sebe]' WHERE `id` = '$ank[id]' LIMIT 1");
}
else $err[]='О себе нужно писать меньше :)';


if (isset($_POST['new_pass']) && utf8_strlen($_POST['new_pass'])>5)
{
admin_log('Пользователи','Смена пароля',"Пользователю '$ank[nick]' установлен новый пароль");
mysql_query("UPDATE `user` SET `pass` = '".shif($_POST['new_pass'])."' WHERE `id` = '$ank[id]' LIMIT 1");
}



if (user_access('user_change_group') && isset($_POST['group_access']))
{
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `user_group` WHERE `id` = '".intval($_POST['group_access'])."' AND `level` < '$user[level]'"),0)==1)
{
if ($ank['group_access']!=intval($_POST['group_access']))
{
admin_log('Пользователи','Изменение статуса',"Пользователь '$ank[nick]': Статус '$ank[group_name]' изменен на '".mysql_result(mysql_query("SELECT `name` FROM `user_group` WHERE `id` = '".intval($_POST['group_access'])."'"),0)."'");
$ank['group_access']=intval($_POST['group_access']);
mysql_query("UPDATE `user` SET `group_access` = '$ank[group_access]' WHERE `id` = '$ank[id]' LIMIT 1");
}
}
}




if (isset($_POST['balls']) && is_numeric($_POST['balls'])){
$ank['balls']=intval($_POST['balls']);
mysql_query("UPDATE `user` SET `balls` = '$ank[balls]' WHERE `id` = '$ank[id]' LIMIT 1");}



admin_log('Пользователи','Профиль',"Редактирование профиля пользователя '$ank[nick]' (id#$ank[id])");

if (!isset($err))msg('Изменения успешно приняты');

}
err();
aut();



$smarty = new Smarty_conf();
$smarty->assign('form_title','Параметры пользователя');
$smarty->assign('method','POST');
$smarty->assign('action',"user.php?id=$ank[id]");
$elements=array();

$elements[]=array('type'=>'input_text', 'title' => 'Ник', 'br'=>1, 'info'=>array('name' => 'nick','value'=>$ank['nick'],'disabled'=>!user_access('user_change_nick')));
$elements[]=array('type'=>'input_text', 'title' => 'Реальное имя', 'br'=>1, 'info'=>array('name' => 'ank_name','value'=>$ank['ank_name']));
$elements[]=array('type'=>'text', 'value' => 'Дата рождения:', 'br'=>1);
$elements[]=array('type'=>'input_text', 'br'=>0, 'info'=>array('name' => 'ank_d_r','value'=>$ank['ank_d_r'],'size'=>2,'maxlength'=>2));
$elements[]=array('type'=>'input_text', 'br'=>0, 'info'=>array('name' => 'ank_m_r','value'=>$ank['ank_m_r'],'size'=>2,'maxlength'=>2));
$elements[]=array('type'=>'input_text', 'br'=>1, 'info'=>array('name' => 'ank_g_r','value'=>$ank['ank_g_r'],'size'=>4,'maxlength'=>4));
$elements[]=array('type'=>'input_text', 'title' => 'Город', 'br'=>1, 'info'=>array('name' => 'ank_city','value'=>$ank['ank_city']));
$elements[]=array('type'=>'input_text', 'title' => 'ICQ', 'br'=>1, 'info'=>array('name' => 'ank_icq','value'=>$ank['ank_icq']));
$elements[]=array('type'=>'input_text', 'title' => 'E-mail', 'br'=>1, 'info'=>array('name' => 'ank_mail','value'=>$ank['ank_mail']));
$elements[]=array('type'=>'input_text', 'title' => 'Номер телефона', 'br'=>1, 'info'=>array('name' => 'ank_n_tel','value'=>$ank['ank_n_tel']));
$elements[]=array('type'=>'input_text', 'title' => 'Кратко о себе', 'br'=>1, 'info'=>array('name' => 'ank_o_sebe','value'=>$ank['ank_o_sebe']));

$elements[]=array('type'=>'input_text', 'title' => 'Автообновление в чате', 'br'=>1, 'info'=>array('name' => 'set_time_chat','value'=>$ank['set_time_chat']));
$elements[]=array('type'=>'input_text', 'title' => 'Пунктов на страницу', 'br'=>1, 'info'=>array('name' => 'set_p_str','value'=>$ank['set_p_str']));

$elements[]=array('type'=>'checkbox', 'br'=>1, 'info'=>array('value'=>1,'checked'=>$ank['set_translit'], 'name'=>'set_translit', 'text'=>'Транслит'));
$elements[]=array('type'=>'checkbox', 'br'=>1, 'info'=>array('value'=>1,'checked'=>$ank['set_files'], 'name'=>'set_files', 'text'=>'Выгрузка файлов'));

$elements[]=array('type'=>'input_text', 'title' => 'Баллы', 'br'=>1, 'info'=>array('name' => 'balls','value'=>$ank['balls']));


if (user_access('user_change_group'))
{
$options=array();
$q=mysql_query("SELECT * FROM `user_group` ORDER BY `id` ASC,`level` DESC");
while ($post = mysql_fetch_assoc($q))
{
if ($post['level']>=$user['level'])continue;
$options[]=array($post['id'],$post['name'],$post['id']==$ank['group_access']);
}
$elements[]=array('type'=>'select', 'title' => 'Группа', 'br'=>1, 'info'=>array('name' => 'group_access','options'=>$options));
}
else $elements[]=array('type'=>'text', 'value' => 'Группа: '.$ank['group_name'], 'br'=>1);


$elements[]=array('type'=>'input_text', 'title' => 'Сменить пароль', 'br'=>1, 'info'=>array('name' => 'new_pass'));

$elements[]=array('type'=>'submit', 'br'=>0, 'info'=>array('name'=>'save', 'value'=>'Сохранить')); // кнопка
$smarty->assign('el',$elements);
$smarty->display('input.form.tpl');

$smarty = new Smarty_conf();
$smarty->assign('menu_title','Ссылки');
$menu=array();
$menu[]=array("/mail.php?id=$ank[id]",'Личное сообщение');
$menu[]=array("/info.php?id=$ank[id]",'В анкету');
$smarty->assign('menu',$menu);
$smarty->display('links.links.tpl');

$smarty = new Smarty_conf();
$smarty->assign('menu_title','Навигация');
$menu=array();
$menu[]=array('.','Админка');
$smarty->assign('menu',$menu);
$smarty->display('links.path.tpl');

include_once '../sys/inc/tfoot.php';
?>