Файл: 3020.ru/file_3020/plugins/user.edit.php
Строк: 481
<?
if (isset($ID) && $level > 1) {
$ank = $sql -> fetch("SELECT * FROM `users` WHERE `id` = '$ID' LIMIT 1");
}
if (!isset($ank['id']) || (isset($ank['id']) && $level <= $ank['level'])) {
$ank = $user;
}
if ($level == 0 || !isset($ank['id'])){
header('Location: /index.php');
exit;
}
if (isset($_GET['enable'])) {
$elid = '1';
} elseif (isset($_GET['disable'])) {
$elid = '0';
}
if (isset($_GET['act']) && isset($elid)) {
if ($_GET['act'] == 'view_vkcom') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_vkcom'] = $elid;
$sql -> update("UPDATE `users` SET `view_vkcom` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} else
if ($_GET['act'] == 'view_telegram') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_telegram'] = $elid;
$sql -> update("UPDATE `users` SET `view_telegram` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} else
if ($_GET['act'] == 'view_family') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_family'] = $elid;
$sql -> update("UPDATE `users` SET `view_family` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_date_r') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_date_r'] = $elid;
$sql -> update("UPDATE `users` SET `view_date_r` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_country') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_country'] = $elid;
$sql -> update("UPDATE `users` SET `view_country` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_city') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_city'] = $elid;
$sql -> update("UPDATE `users` SET `view_city` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_email') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_email'] = $elid;
$sql -> update("UPDATE `users` SET `view_email` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_icq') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_icq'] = $elid;
$sql -> update("UPDATE `users` SET `view_icq` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_skype') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_skype'] = $elid;
$sql -> update("UPDATE `users` SET `view_skype` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} elseif ($_GET['act'] == 'view_sites') {
if (($level > 1 && $level > $ank['level']) || $ank['id'] == $user['id']) {
$ank['view_sites'] = $elid;
$sql -> update("UPDATE `users` SET `view_sites` = '$elid' WHERE `id` = '$ank[id]' LIMIT 1");
} else {
$err[] = 'У вас нет прав на изменение этого параметра';
}
} else {
$err[] = 'Не существующий параметр';
}
if (!isset($err)) {
$messages[] = ($elid == 1 ? 'Пункт изменен на «Видно»' : 'Пункт изменен на «Невидно»');
}
}
if (isset($_POST['city'])) {
if ($level == 4 && $ank['login'] != $sql->esc($_POST['login'])) {
if ($sql -> selectCount("SELECT COUNT(*) FROM `users` WHERE `login` = '".$sql->esc($_POST['login'])."'") != 0) {
$err[] = 'К сожалению ник ' . text($_POST['login']) . ' уже занят';
}
if ($_POST['login'] && !preg_match("#^([A-z0-9-_])+$#ui", $_POST['login'])) {
$err[] = 'В нике присутствуют запрещенные символы';
}
if (strlen2($_POST['login']) > 32) {
$err[] = 'Ник слишком длинный';
} elseif (strlen2($_POST['login']) < 3) {
$err[] = 'Ник слишком короткий';
}
if (!isset($err)) {
$ank['login'] = $sql->esc($_POST['login']);
}
}
if (($level > 1 && $level > $ank['level']) || $user['id'] == $ank['id']) {
if ($_POST['city'] && !preg_match("#^([A-zА-я0-9- ])+$#ui", $_POST['city'])) {
$err[] = 'В городе присутствуют запрещенные символы';
}
if ($_POST['icq'] && !preg_match("#^([0-9])+$#ui", $_POST['icq'])) {
$err[] = 'В ICQ присутствуют запрещенные символы';
}
if (strlen2($_POST['city']) > 32) {
$err[] = 'Название города слишком длинное';
}
if ($_POST['sites'] && !preg_match("#^([A-z0-9-. ])+$#ui", $_POST['sites'])) {
$err[] = 'В сайте присутствуют запрещенные символы';
}
if ($_POST['skype'] && !preg_match("#^([A-z0-9-_])+$#ui", $_POST['skype'])) {
$err[] = 'В Skype присутствуют запрещенные символы';
}
$ank['country'] = (int) $_POST['country'];
$ank['icq'] = (int) $_POST['icq'];
$ank['skype'] = $sql->esc($_POST['skype']);
$ank['city'] = $sql->esc($_POST['city']);
$ank['sites'] = $sql->esc($_POST['sites']);
}
if ($level > 1 && $level > $ank['level']) {
$ank['pol'] = (int) $_POST['pol'];
}
if ($level > 2 && $level > $ank['level']) {
if (strlen2($_POST['family']) > 32) {
$err[] = 'Фамилия слишком длинная';
} elseif (strlen2($_POST['family']) < 3) {
$err[] = 'Фамилия слишком короткая';
}
if (strlen2($_POST['name']) > 32) {
$err[] = 'Имя слишком длинное';
} elseif (strlen2($_POST['name']) < 3) {
$err[] = 'Имя слишком короткое';
}
if ($_POST['name'] && !preg_match("#^([A-zА-я0-9-_])+$#ui", $_POST['name'])) {
$err[] = 'В имени присутствуют запрещенные символы';
}
if ($_POST['family'] && !preg_match("#^([A-zА-я0-9-_])+$#ui", $_POST['family'])) {
$err[] = 'В фамилии присутствуют запрещенные символы';
}
if ($_POST['email'] && !preg_match('#^[A-z0-9-._]+@[A-z0-9]{2,}.[A-z]{2,4}$#ui', $_POST['email'])) {
$err[] = 'Неверный формат Email';
}
if (!$_POST['email']) {
$err[] = 'Вы не указали Email';
}
$ank['email'] = $sql->esc($_POST['email']);
$ank['ank_d_r'] = (int) $_POST['ank_d_r'];
$ank['ank_m_r'] = (int) $_POST['ank_m_r'];
$ank['ank_g_r'] = (int) $_POST['ank_g_r'];
$ank['family'] = $sql->esc($_POST['family']);
$ank['name'] = $sql->esc($_POST['name']);
}
if ($level == 4) {
if (isset($_POST['level'])) {
$ank['level'] = (int) $_POST['level'];
}
if (isset($_POST['pass1']) && strlen2($_POST['pass1']) >= 6) {
if ($_POST['pass1'] && !preg_match("#^([A-z0-9])+$#ui", $_POST['pass1'])) {
$err[] = 'Пароль должен содержать только английские буквы и цифры';
}
if ($_POST['pass1'] != $_POST['pass2']) {
$err[] = 'Пароли не совпадают';
}
if (strlen2($_POST['pass1']) > 20) {
$err[] = 'Пароль слишком длинный';
} elseif (strlen2($_POST['pass1']) < 6) {
$err[] = 'Пароль слишком короткий';
}
if (!isset($err)) {
$ank['password'] = md5($sql->esc($_POST['pass1']));
}
}
if ($_POST['keyword'] && !preg_match("#^([A-zА-я0-9])+$#ui", $_POST['keyword'])) {
$err[] = 'В cлове присутствуют запрещенные символы';
}
if ($_POST['telegram'] && !preg_match("#^([A-z0-9-@])+$#ui", $_POST['telegram'])) {
$err[] = 'В telegram присутствуют запрещенные символы';
}
if ($_POST['vkcom'] && !preg_match("#^([A-z0-9-@])+$#ui", $_POST['vkcom'])) {
$err[] = 'В vkcom присутствуют запрещенные символы';
}
if (strlen2($_POST['keyword']) > 32) {
$err[] = 'Ответ на вопрос слишком длинный';
} elseif (strlen2($_POST['keyword']) < 3) {
$err[] = 'Ответ на вопрос слишком короткий';
}
if ($_POST['wmid'] && !preg_match("#^([0-9])+$#ui", $_POST['wmid'])) {
$err[] = 'В поле wmid присутствуют запрещенные символы';
}
if ($_POST['purse'] && !preg_match("#^([A-Z0-9])+$#ui", $_POST['purse'])) {
$err[] = 'В поле WM кошелек присутствуют запрещенные символы';
}
$ank['wmid'] = $_POST['wmid'];
$ank['what_word'] = (int) $_POST['what_word'];
$ank['keyword'] = $sql->esc($_POST['keyword']);
$ank['purse'] = $sql->esc($_POST['purse']);
$ank['telegram'] = $sql->esc($_POST['telegram']);
$ank['vkcom'] = $sql->esc($_POST['vkcom']);
}
$nick= $sql -> fetch("SELECT * FROM `users` WHERE `id` = '$ID' LIMIT 1");
if (!isset($err)) {
$sql -> update("UPDATE `users` SET `telegram` = '$ank[telegram]', `password` = '$ank[password]', `login` = '$ank[login]', `my_links` = '$ank[login]', `purse` = '$ank[purse]', `email` = '$ank[email]', `keyword` = '$ank[keyword]', `what_word` = '$ank[what_word]', `wmid` = '$ank[wmid]', `name` = '$ank[name]', `family` = '$ank[family]', `pol` = '$ank[pol]', `ank_g_r` = '$ank[ank_g_r]', `ank_m_r` = '$ank[ank_m_r]', `ank_d_r` = '$ank[ank_d_r]', `sites` = '$ank[sites]', `city` = '$ank[city]', `skype` = '$ank[skype]', `icq` = '$ank[icq]', `country` = '$ank[country]', `level` = '$ank[level]' WHERE `id` = '$ank[id]' LIMIT 1");
if (strlen2($_POST['login']))$sql -> insert("INSERT INTO `nick_histore` (`id_user`, `id_kont`, `nick`, `nick_new`,`time`) values('$ank[id]', '$ank[id]', '".$nick['login']."', '".$ank['login']."', '$time')");
$messages[] = 'Личные данные успешно изменены';
} else {
$err[] = 'Ошибка при изменении личных данных';
}
}
$system['title'] = 'Личные настройки';
require SYS . 'header.php';
?>
<div class="nav2">
<form class="form-horizontal" action="?func=user.edit&id=<?= $ank['id']?>" method="POST" style="margin: 2px;">
<div class="control-group">
<label class="control-label" for="login">Логин</label>
<div class="controls">
<input type="text" id="login" name="login" value="<?= text($ank['login'])?>" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?>/> <i title="Всегда видно, изменить нельзя" class="icon-eye-open"></i>
</div>
</div>
<div class="control-group">
<label class="control-label" for="name">Имя</label>
<div class="controls">
<input type="text" id="name" name="name" value="<?= text($ank['name'])?>" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?>/> <i title="Всегда видно, изменить нельзя" class="icon-eye-open"></i>
</div>
</div>
<div class="control-group">
<label class="control-label" for="family">Фамилия</label>
<div class="controls">
<input type="text" id="family" name="family" value="<?= text($ank['family'])?>" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?> />
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_family&<?= ($ank['view_family'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="email">Email</label>
<div class="controls">
<input type="text" id="email" name="email" value="<?= text($ank['email'])?>" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?> />
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_email&<?= ($ank['view_email'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="optionsRadios1">Пол</label>
<div class="controls">
<label class="radio">
<input type="radio" name="pol" id="optionsRadios1" value="1" <?= ($ank['pol'] == 1 ? 'checked' : '')?> <?= ($level > 1 && $level > $ank['level'] ? '' : ' disabled')?>>
Мужской <i title="Всегда видно, изменить нельзя" class="icon-eye-open"></i>
</label>
<label class="radio">
<input type="radio" name="pol" id="optionsRadios2" value="0" <?= ($ank['pol'] == 0 ? 'checked' : '')?> <?= ($level > 1 && $level > $ank['level'] ? '' : ' disabled')?>>
Женский
</label>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputGod">Дата рождения</label>
<div class="controls">
<select name="ank_d_r" id="inputGod" class="span1" style="width: auto;" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?>>
<?
for ($Y = 1; $Y <= 31; $Y++) {
?><option value="<?= $Y?>" <?= ($ank['ank_d_r'] == $Y ? ' selected="selected"' : '')?>><?= $Y?></option><?
}
?>
</select>
<select name="ank_m_r" id="inputGod" class="span1" style="width: auto;" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?>>
<?
$date = array(
'1' => 'Января', '2' => 'Февраля', '3' => 'Марта',
'4' => 'Апреля', '5' => 'Мая', '6' => 'Июня',
'7' => 'Июля', '8' => 'Августа', '9' => 'Сентябрь',
'10' => 'Октября', '11' => 'Ноября', '12' => 'Декабря');
foreach ($date AS $day => $month) {
?><option value="<?= $day?>" <?= ($ank['ank_m_r'] == $day ? ' selected="selected"' : '')?>><?= $month?></option><?
}
?>
</select>
<select name="ank_g_r" id="inputGod" class="span1" style="width: auto;" <?= ($level > 2 && $level > $ank['level'] ? '' : ' disabled')?>>
<?
$date = (date('Y') - 9);
for ($Y = $date; $Y > ($date - 65); $Y--) {
?><option value="<?= $Y?>" <?= ($ank['ank_g_r'] == $Y ? ' selected="selected"' : '')?>><?= $Y?></option><?
}
?>
</select>
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_date_r&<?= ($ank['view_date_r'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputCountry">Страна</label>
<div class="controls">
<select id="inputCountry" name="country" <?= (($level > 1 && $level > $ank['level']) || ($user['id'] == $ank['id']) ? '' : ' disabled')?>>
<?
$query = $sql->select('SELECT * FROM `countries` ORDER BY `id` ASC');
foreach ($query AS $country) {
?><option value="<?= $country['id']?>" <?= ($ank['country'] == $country['id'] ? ' selected="selected"' : '')?>><?= text($country['name'])?></option><?
}
?>
</select>
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_country&<?= ($ank['view_country'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="inputCity">Город</label>
<div class="controls">
<input type="text" id="inputCity" name="city" placeholder="Город.." maxlength="32" value="<?= text($ank['city'])?>" <?= (($level > 1 && $level > $ank['level']) || ($user['id'] == $ank['id']) ? '' : ' disabled')?>/>
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_city&<?= ($ank['view_city'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="skype">Skype</label>
<div class="controls">
<input type="text" id="skype" name="skype" placeholder="Skype Login.." maxlength="32" value="<?= text($ank['skype'])?>" />
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_skype&<?= ($ank['view_skype'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="skype">Telegram</label>
<div class="controls">
<input type="text" id="telegram" name="telegram" placeholder="Telegram link : @testlink55" maxlength="32" value="<?= text($ank['telegram'])?>" />
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_telegram&<?= ($ank['view_telegram'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="skype">ВКонтакте</label>
<div class="controls">
<input type="text" id="vkcom" name="vkcom" placeholder="vkcom link : testlink55 или id5555" maxlength="32" value="<?= text($ank['vkcom'])?>" />
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_vkcom&<?= ($ank['view_vkcom'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="icq">ICQ</label>
<div class="controls">
<input type="text" id="icq" name="icq" placeholder="Icq Number.." maxlength="9" value="<?= $ank['icq']?>" />
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_icq&<?= ($ank['view_icq'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<div class="control-group">
<label class="control-label" for="sites">Сайт (без http://)</label>
<div class="controls">
<input type="text" id="sites" name="sites" placeholder="Адрес сайта.." value="<?= text($ank['sites'])?>" <?= (($level > 1 && $level > $ank['level']) || ($user['id'] == $ank['id']) ? '' : ' disabled')?>/>
<a href="?func=user.edit&id=<?= $ank['id']?>&act=view_sites&<?= ($ank['view_sites'] == 1 ? 'disable"><i title="Видно, можно скрыть поле" class="icon-eye-open"></i>' : 'enable"><i title="Невидно, можно открыть поле" class="icon-eye-close"></i>')?></a>
</div>
</div>
<? if ($level == 4 ) { ?>
<div class="control-group">
<label class="control-label" for="wmid">WMID</label>
<div class="controls">
<input type="text" id="wmid" name="wmid" placeholder="Wmid Number.." value="<?= $ank['wmid']?>" <?= ($level == 4 ? '' : ' disabled')?>/>
<i title="Всегда видно, изменить нельзя" class="icon-eye-open"></i>
</div>
</div>
<div class="control-group">
<label class="control-label" for="purse">WM кошелёк</label>
<div class="controls">
<input type="text" id="purse" name="purse" placeholder="Purse Number.." value="<?= text($ank['purse'])?>" <?= ($level == 4 ? '' : ' disabled')?>/>
<i title="Невидно, изменить нельзя" class="icon-eye-open"></i>
</div>
</div>
<? } ?>
<? if ($level == 4 || $user['id'] == $ank['id']) { ?>
<div class="control-group">
<label class="control-label" for="what_word">Секретный вопрос</label>
<div class="controls">
<select name="what_word" id="what_word" class="span1" style="width: auto;" <?= ($level == 4 ? '' : ' disabled')?>>
<?
$whats = array('1' => 'Любимое животное', '2' => 'Имя школьной учительницы', '3' => 'Девичья фамилия матери', '4' => 'Любимый город', '5' => 'Любимое блюдо');
foreach ($whats AS $key => $name) {
?><option value="<?= $key?>" <?= ($ank['what_word'] == $key ? ' selected="selected"' : '')?>><?= $name?></option><?
}
?>
</select>
<i title="Невидно, изменить нельзя" class="icon-eye-open"></i>
</div>
</div>
<div class="control-group">
<label class="control-label" for="keyword">Ответ</label>
<div class="controls">
<input type="text" id="keyword" name="keyword" placeholder="Ответ.." value="<?= text($ank['keyword'])?>" <?= ($level == 4 ? '' : ' disabled')?>/>
<i title="Невидно, изменить нельзя" class="icon-eye-open"></i>
</div>
</div>
<? } ?>
<? if ($level == 4 && $user['id'] != $ank['id']) { ?>
<div class="control-group">
<label class="control-label" for="level">Статус</label>
<div class="controls">
<select name="level" id="level" class="span1" style="width: auto;">
<?
$adm = array('1' => 'Пользователь', '2' => 'Модератор', '3' => 'Администратор');
foreach ($adm AS $key => $name) {
?><option value="<?= $key?>" <?= ($ank['level'] == $key ? ' selected="selected"' : '')?>><?= $name?></option><?
}
?>
</select>
</div>
</div>
<div class="control-group">
<label class="control-label" for="pass1">Новый пароль</label>
<div class="controls">
<input type="password" id="pass1" name="pass1" placeholder="Пароль..">
</div>
</div>
<div class="control-group">
<label class="control-label" for="pass2">Повторите пароль</label>
<div class="controls">
<input type="password" id="pass2" name="pass2" placeholder="Повторите пароль..">
</div>
</div>
<? } ?>
<div class="control-group">
<div class="controls">
<button type="submit" class="btn">Изменить</button>
</div>
</div>
</form>
</div>
<div class="foot">
« <a href="?func=user.main">Кабинет</a>
</div>