Файл: apanel.php
Строк: 341
<?php
error_reporting(0);
include_once('./versions.inc');
$login=$_POST['login']; $pass=$_POST['pass']; $key=$_GET['key'];
if (!(($login<>null && $pass<>null) || $key<>null)) {
p_begin(w2u('Панель администратора'),'center');
if (!$wml) {echo '<form action="apanel.php" method="post">';}
echo w2u('Логин:').$br.'<input type="text" name="login" value=""'.$_s.'>'.$br.w2u('Пароль:').$br.'<input type="password" name="pass" value=""'.$_s.'>'.$br;
if ($wml) {
echo '<anchor>'.w2u('ВХОД').'<go href="apanel.php?wml" method="post"><postfield name="login" value="$(login)"/><postfield name="pass" value="$(pass)"/></go></anchor>'.$br;
} else {
echo '<input type="submit" value="'.w2u('ВХОД').'"></form>';
}
p_end('center');
} else {
$ms=ms_connect(1); $er=true;
if ($key<>null) {
$key=preg_replace('~[^0-9]~','',$key);
if ($key<>null) {
$res=ms_q("Select * From `admin_keys` Where `time`<'".(time()-1800)."' And `key`<>'' Limit 1");
if (ms_num($res)==1) {ms_q("Update `admin_keys` Set `key`='' Limit 1");}
else {
ms_q("Update `admin_keys` Set `time`='".time()."' Limit 1");
$res=ms_q("Select * From `admin_keys` Limit 1");
$data=ms_data($res); $key=$data['key']; $pass=out_ms($data['pass']);
if ($key<>null && $pass<>null) {$er=false;}
}
}
} else {
$login=preg_replace('~[^0-9a-z]~','',strtolower($login));
$res=ms_q("Select * From `settings` Where `login`='".$login."' And `pass`='".md5($pass)."' Limit 1");
if (ms_num($res)==1) {
$key=rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
ms_q("Update `admin_keys` Set `key`='".$key."', `pass`='".in_ms($pass)."', `time`='".time()."' Limit 1");
$er=false;
}
}
if (!$er) {
$res=ms_q("Select * From `settings` Limit 1"); $settings=ms_data($res);
$sh_cnt=$settings['sh_cnt']; $rsort=$settings['rsort']; $sh_quota=$settings['sh_quota'];
$ac=$_GET['ac']; $s_ac=$_GET['s_ac'];
if ($ac==null) {
p_begin(w2u('Панель администратора'));
echo $_tr.' <a href="apanel.php?key='.$key.'&ac=users'.$_v2.'">'.w2u('Пользователи').'</a>'.$br;
echo $_tr.' '.w2u('Рассылка новостей').' '.$br;
echo $_tr.' <a href="apanel.php?key='.$key.'&ac=lock'.$_v2.'">'.w2u('Запрещённые логины').'</a>'.$br;
echo $_tr.' <a href="apanel.php?key='.$key.'&ac=settings'.$_v2.'">'.w2u('Настройки').'</a>'.$br;
} else {
if ($ac=='users') {
p_begin(w2u('Панель администратора - Пользователи'));
if ($s_ac==null) {
$res=ms_q("Select `id` From `users`");
$users_all=ms_num($res); $p=$_GET['p']; if (!$p>0) {$p=1;}
if ($users_all>0) {
$pages=ceil($users_all/$sh_cnt);
if ($p>$pages) {$p=$pages;}
$begin=$p*$sh_cnt-$sh_cnt;
if ($begin>$users_all) {$begin=$users_all-1;}
if ($rsort==1) {$sort=' Order By `id` Desc';} else {$sort='';}
if ($sh_quota==1) {$quota=',`quota`,`quota_disk`';} else {$quota='';}
$res=ms_q("Select `id`,`login`,`domain`".$quota." From `users`".$sort." Limit $begin,$sh_cnt");
$cnt=ms_num($res);
} else {$cnt=0;}
if ($cnt>0) {
$users=ms_data_full($res);
for ($i=0;$i<count($users);$i++) {
if ($sh_quota==1) {$quota=' [ '.$users[$i]['quota'].'/'.$users[$i]['quota_disk'].' ]';} else {$quota='';}
echo ($begin+$i+1).') <a href="apanel.php?key='.$key.'&ac=users&s_ac=edit&id='.$users[$i]['id'].$_v2.'">'.out_ms($users[$i]['login']).'@'.$users[$i]['domain'].$quota.'</a>'.$br;
}
$bl=false;
if ($begin>0 && $p>1) {
$bl=true;
echo $br.'<a href="apanel.php?key='.$key.'&ac=users&p='.($p-1).$_v2.'"><<'.w2u('Предыдущие').'</a>';
}
if ($begin<$users_all-$sh_cnt) {
if ($bl) {echo ' | ';} else {$bl=true; echo $br;}
echo '<a href="apanel.php?key='.$key.'&ac=users&p='.($p+1).$_v2.'">'.w2u('Следующие').'>></a>';
}
if ($bl) {echo $br;}
} else {
echo w2u('Нет пользователей..').$br;
}
} elseif ($s_ac=='edit') {
$id=preg_replace('~[^0-9]~','',$_GET['id']);
if ($id<>null) {
$res=ms_q("Select `login`,`domain`,`quota`,`quota_disk` From `users` Where `id`='".$id."' Limit 1");
if (ms_num($res)==1) {
$user=ms_data($res);
echo $_tr.' <u>'.out_ms($user['login']).'@'.$user['domain'].'</u>';
if (!$wml) {echo '<form action="apanel.php?key='.$key.'&ac=users&s_ac=save&id='.$id.'" method="post">';} else {echo $br;}
echo w2u('Размер ящика (мб):').$br.'<input type="text" name="quota" value="'.$user['quota'].'"'.$_s.'>'.$br.w2u('Размер диска (мб):').$br.'<input type="text" name="quota_disk" value="'.$user['quota_disk'].'"'.$_s.'>'.$br;
if ($wml) {
echo '<anchor>'.w2u('Сохранить').'<go href="apanel.php?key='.$key.'&ac=users&s_ac=save&id='.$id.'&wml" method="post"><postfield name="quota" value="$(quota)"/><postfield name="quota_disk" value="$(quota_disk)"/></go></anchor>'.$br;
} else {
echo '<input type="submit" value="'.w2u('Сохранить').'"></form>';
}
echo $_hr.$br.$_tr.' <a href="apanel.php?key='.$key.'&ac=users&s_ac=delete&id='.$id.$_v2.'">'.w2u('Удалить').'</a>'.$br.$_tr.' <a href="apanel.php?key='.$key.'&ac=users&s_ac=delete&t_ac=block&id='.$id.$_v2.'">'.w2u('Удалить и заблокировать').'</a>'.$br;
} else {
echo w2u('Пользователь не существует..').$br;
}
} else {
echo w2u('Пользователь не указан..').$br;
}
} elseif ($s_ac=='save') {
$id=preg_replace('~[^0-9]~','',$_GET['id']);
if ($id<>null) {
$res=ms_q("Select * From `users` Where `id`='".$id."' Limit 1");
if (ms_num($res)==1) {
$quota=preg_replace('~[^0-9]~','',$_POST['quota']);
$quota_disk=preg_replace('~[^0-9]~','',$_POST['quota_disk']);
if ($quota>=1 && $quota_disk>=1) {
ms_q("Update `users` Set `quota`='".$quota."', `quota_disk`='".$quota_disk."' Where `id`='".$id."' Limit 1");
echo w2u('Изменения сохранены!!').$br;
} else {
if (!$quota>=1) {
echo w2u('Неверно указан размер ящика..').$br;
} else {
echo w2u('Неверно указан размер диска..').$br;
}
}
} else {
echo w2u('Пользователь не существует..').$br;
}
} else {
echo w2u('Пользователь не указан..').$br;
}
} elseif ($s_ac=='delete') {
$id=preg_replace('~[^0-9]~','',$_GET['id']);
if ($id<>null) {
$res=ms_q("Select `id`,`login`,`domain` From `users` Where `id`='".$id."' Limit 1");
if (ms_num($res)==1) {
$user=ms_data($res);
ms_q("Delete From `users` Where `id`='".$user['id']."'");
ms_q("Delete From `keys` Where `user`='".$user['id']."'");
ms_q("Delete From `files` Where `user`='".$user['id']."'");
ms_q("Delete From `contacts` Where `user`='".$user['id']."'");
ms_q("Delete From `files` Where `user`='".$user['id']."'");
ms_q("Delete From `files_list` Where `user`='".$user['id']."'");
ms_q("Delete From `inbox` Where `user`='".$user['id']."'");
ms_q("Delete From `outbox` Where `user`='".$user['id']."'");
echo w2u('Пользователь удалён из базы данных!!').$br;
$rs=delMail($user['login'],$user['domain']);
if ($rs==1) {
echo w2u('Ящик пользователя удалён!!').$br;
} elseif ($rs==0) {
echo w2u('Не удалось удалить ящик пользователя..').$br;
} else {
echo w2u('Ящик пользователя не удалён, ошибка: ').iconv('windows-1251','utf-8',$rs).$br;
}
$t_ac=$_GET['t_ac'];
if ($t_ac==1) {
$res=ms_q("Select * From `lock` Where `login`='".$user['login']."' Limit 1");
if (ms_num($res)<>1) {
ms_q("Insert Into `lock` Set `login`='".$user['login']."'");
echo w2u('Логин пользователя был внесён в список запрещённых!!').$br;
} else {
echo w2u('Логин пользователя уже существует в списке запрещённых..').$br;
}
}
} else {
echo w2u('Пользователь не существует..').$br;
}
} else {
echo w2u('Пользователь не указан..').$br;
}
} else {
echo w2u('Действие не указано..').$br;
}
} elseif ($ac=='news') {
p_begin(w2u('Панель администратора - Рассылка новостей'));
} elseif ($ac=='lock') {
p_begin(w2u('Панель администратора - Запрещённые логины'));
if ($s_ac==null) {
$res=ms_q("Select `id` From `lock`");
$lock_all=ms_num($res); $p=$_GET['p']; if (!$p>0) {$p=1;}
if ($lock_all>0) {
$pages=ceil($lock_all/$sh_cnt);
if ($p>$pages) {$p=$pages;}
$begin=$p*$sh_cnt-$sh_cnt;
if ($begin>$lock_all) {$begin=$lock_all-1;}
$res=ms_q("Select * From `lock` Order By `id` Desc Limit $begin,$sh_cnt");
$cnt=ms_num($res);
} else {$cnt=0;}
if ($cnt>0) {
$locks=ms_data_full($res);
for ($i=0;$i<count($locks);$i++) {
echo ($begin+$i+1).') <a href="apanel.php?key='.$key.'&ac=lock&s_ac=edit&id='.$locks[$i]['id'].$_v2.'"> '.$locks[$i]['login'].' </a>'.$br;
}
$bl=false;
if ($begin>0 && $p>1) {
$bl=true;
echo $br.'<a href="apanel.php?key='.$key.'&ac=lock&p='.($p-1).$_v2.'"><<'.w2u('Предыдущие').'</a>';
}
if ($begin<$lock_all-$sh_cnt) {
if ($bl) {echo ' | ';} else {$bl=true; echo $br;}
echo '<a href="apanel.php?key='.$key.'&ac=lock&p='.($p+1).$_v2.'">'.w2u('Следующие').'>></a>';
}
if ($bl) {echo $br;}
} else {
echo w2u('Нет записей..').$br;
}
echo $_hr.$br.$_tr.' <a href="apanel.php?key='.$key.'&ac=lock&s_ac=add'.$_v2.'">'.w2u('Добавить').'</a>'.$br;
} elseif ($s_ac=='add') {
if (!$wml) {echo '<form action="apanel.php?key='.$key.'&ac=lock&s_ac=save&add=1" method="post">';}
echo w2u('Логин (от 3 до 20 латинских букв, цифр и символа "-"):').$br.'<input type="text" name="login_lock" value=""'.$_s.'>'.$br;
if ($wml) {
echo '<anchor>'.w2u('Добавить').'<go href="apanel.php?key='.$key.'&ac=lock&s_ac=save&add=1&wml" method="post"><postfield name="login_lock" value="$(login_lock)"/></go></anchor>'.$br;
} else {
echo '<input type="submit" value="'.w2u('Добавить').'"></form>';
}
} elseif ($s_ac=='edit') {
$id=preg_replace('~[^0-9]~','',$_GET['id']);
if ($id<>null) {
$res=ms_q("Select * From `lock` Where `id`='".$id."' Limit 1");
$login_lock=ms_data($res,'login');
if (!$wml) {echo '<form action="apanel.php?key='.$key.'&ac=lock&s_ac=save&id='.$id.'" method="post">';}
echo w2u('Логин (от 3 до 20 латинских букв, цифр и символа "-"):').$br.'<input type="text" name="login_lock" value="'.$login_lock.'"'.$_s.'>'.$br;
if ($wml) {
echo '<anchor>'.w2u('Сохранить').'<go href="apanel.php?key='.$key.'&ac=lock&s_ac=save&id='.$id.'&wml" method="post"><postfield name="login_lock" value="$(login_lock)"/></go></anchor>'.$br;
} else {
echo '<input type="submit" value="'.w2u('Сохранить').'"></form>';
}
echo $_hr.$br.$_tr.' <a href="apanel.php?key='.$key.'&ac=lock&s_ac=delete&id='.$id.'">'.w2u('Удалить').'</a>'.$br;
} else {
echo w2u('Действие не указано..').$br;
}
} elseif ($s_ac=='save') {
$id=preg_replace('~[^0-9]~','',$_GET['id']); $add=$_GET['add'];
if ($id<>null || $add==1) {
$login_lock=$_POST['login_lock'];
if (!(strlen($login_lock)>2 && strlen($login_lock)<21)) {$login_lock='';}
else {$login_lock=check_mail($login_lock);}
if ($login_lock<>null) {
if ($add==1) {
$res=ms_q("Select * From `lock` Where `login`='".$login_lock."' Limit 1");
if (ms_num($res)<>1) {
ms_q("Insert Into `lock` Set `login`='".$login_lock."'");
echo w2u('Логин добавлен!!').$br;
} else {
echo w2u('Указанный логин уже существует..').$br;
}
} else {
ms_q("Update `lock` Set `login`='".$login_lock."' Where `id`='".$id."' Limit 1");
echo w2u('Изменения сохранены!!').$br;
}
} else {
echo w2u('Неверно введён логин..').$br;
}
} else {
echo w2u('Действие не указано..').$br;
}
} elseif ($s_ac=='delete') {
$id=preg_replace('~[^0-9]~','',$_GET['id']);
if ($id<>null) {
$res=ms_q("Select * From `lock` Where `id`='".$id."' Limit 1");
if (ms_num($res)==1) {
ms_q("Delete From `lock` Where `id`='".$id."' Limit 1");
echo w2u('Логин удалён!!').$br;
} else {
echo w2u('Логин не существует..').$br;
}
} else {
echo w2u('Действие не указано..').$br;
}
} else {
echo w2u('Действие не указано..').$br;
}
} elseif ($ac=='settings') {
p_begin(w2u('Панель администратора - Настройки'));
if ($s_ac==null) {
$res=ms_q("Select * From `settings` Limit 1"); $settings=ms_data($res);
if (!$wml) {echo '<form action="apanel.php?key='.$key.'&ac=settings&s_ac=save" method="post">';}
echo w2u('Логин администратора:').$br.'<input type="text" name="admin_login" value="'.out_ms($settings['login']).'"'.$_s.'>'.$br.$br.w2u('[ <u>Заполнить, если нужен новый пароль администратора</u> ]').$br.w2u('Текущий пароль:').$br.'<input type="password" name="pass" value=""'.$_s.'>'.$br.w2u('Новый пароль:').$br.'<input type="password" name="newpass" value=""'.$_s.'>'.$br.$br.w2u('[ <u>Другие настройки</u> ]').$br.w2u('Размер ящика (мб):').$br.'<input type="text" name="quota" value="'.$settings['quota'].'"'.$_s.'>'.$br.w2u('Размер диска (мб):').$br.'<input type="text" name="quota_disk" value="'.$settings['quota_disk'].'"'.$_s.'>'.$br.w2u('Количество записей на странице:').$br.'<input type="text" name="sh_cnt" value="'.$settings['sh_cnt'].'"'.$_s.'>'.$br;
if ($settings['rsort']==1) {$ch_sort=' checked';} else {$ch_sort='';}
if (!$wml) {echo '<input type="checkbox" name="rsort" value="1"'.$ch_sort.'>'.w2u('Обратная сортировка записей');} else {echo '<select name="rsort" multiple="true" value="'.$settings['rsort'].'"><option value="1">'.w2u('Обратная сортировка записей').'</option></select>';}
echo $br;
if ($settings['sh_quota']==1) {$ch_quota=' checked';} else {$ch_quota='';}
if (!$wml) {echo '<input type="checkbox" name="sh_quota" value="1"'.$ch_quota.'>'.w2u('Показывать размер ящика и диска');} else {echo '<select name="sh_quota" multiple="true" value="'.$settings['sh_quota'].'"><option value="1">'.w2u('Показывать размер ящика и диска').'</option></select>';}
echo $br;
if ($wml) {
echo '<anchor>'.w2u('Сохранить').'<go href="apanel.php?key='.$key.'&ac=settings&s_ac=save&wml" method="post"><postfield name="login_lock" value="$(login_lock)"/></go></anchor>'.$br;
} else {
echo '<input type="submit" value="'.w2u('Сохранить').'"></form>';
}
} elseif ($s_ac=='save') {
$admin_login=del($_POST['admin_login']); $pass=$_POST['pass']; $newpass=$_POST['newpass'];
$quota=$_POST['quota']; $quota_disk=$_POST['quota_disk']; $sh_cnt=$_POST['sh_cnt'];
$rsort=$_POST['rsort']; $sh_quota=$_POST['sh_quota'];
$res=ms_q("Select `login` From `settings` Limit 1"); $login=ms_data($res,'login');
if ($newpass<>null && $pass<>null) {
$res=ms_q("Select `login` From `settings` Where `login`='".$login."' And `pass`='".md5($pass)."' Limit 1");
if (ms_num($res)==1) {
ms_q("Update `settings` Set `pass`='".md5($newpass)."' Where `login`='".$login."' Limit 1");
ms_q("Update `admin_keys` Set `pass`='".md5($newpass)."' Limit 1");
echo w2u('Пароль админа изменён!!').$br;
}
}
if ($admin_login<>null && $login<>$admin_login) {
ms_q("Update `settings` Set `login`='".in_ms($admin_login)."' Where `login`='".$login."' Limit 1");
echo w2u('Логин админа изменён!!').$br;
}
$quota=preg_replace('~[^0-9]~','',$quota); $quota_disk=preg_replace('~[^0-9]~','',$quota_disk);
$sh_cnt=preg_replace('~[^0-9]~','',$sh_cnt);
if ($quota<1 || $quota>500) {$quota=1;} if ($quota_disk<1 || $quota_disk>500) {$quota_disk=1;}
if ($sh_cnt<5 || $sh_cnt>99) {$sh_cnt=12;}
if ($rsort==1) {$irsort=1;} else {$irsort=0;}
if ($sh_quota==1) {$ish_quota=1;} else {$ish_quota=0;}
ms_q("Update `settings` Set `quota`='".$quota."', `quota_disk`='".$quota_disk."', `sh_cnt`='".$sh_cnt."', `rsort`='".$irsort."', `sh_quota`='".$ish_quota."' Limit 1");
echo w2u('Настройки сохранены!!').$br;
} else {
echo w2u('Действие не указано..').$br;
}
} elseif ($ac=='exit') {
p_begin(w2u('Панель администратора - Выход'));
ms_q("Update `admin_keys` Set `key`='' Limit 1");
echo w2u('Вы вышли из панели администратора!!').$br;
} else {
p_begin(w2u('Панель администратора'));
echo w2u('Действие не выбрано..').$br;
}
}
echo $_hr.$br;
if ($ac<>null) {
if ($ac=='users' && $s_ac<>null) {echo $_tr.' <a href="apanel.php?key='.$key.'&ac=users'.$_v2.'">'.w2u('Пользователи').'</a>'.$br;}
if ($ac=='lock' && $s_ac<>null) {echo $_tr.' <a href="apanel.php?key='.$key.'&ac=lock'.$_v2.'">'.w2u('Запрещённые логины').'</a>'.$br;}
if ($ac=='exit') {echo $_tr.' <a href="index.php'.$_v1.'">'.w2u('Главная почты').'</a>'.$br;}
else {echo $_tr.' <a href="apanel.php?key='.$key.$_v2.'">'.w2u('Главная').'</a>'.$br;}
}
if ($ac<>'exit') {echo $_tr.' <a href="apanel.php?key='.$key.'&ac=exit'.$_v2.'">'.w2u('Выход').'</a>'.$br;}
p_end();
} else {
p_begin(w2u('Панель администратора'),'center');
echo w2u('Неверный логин или пароль..').$br.$_hr.$br.'<a href="apanel.php'.$_v1.'">'.w2u('Назад').'</a>'.$br;
p_end('center');
}
ms_close($ms);
}
?>