Файл: pages/apanel/user_edit.php
Строк: 91
<?
$link = false;
if (isset($urlType[2])) {
$link = $urlType[2];
}
$us = $sql->fetch("SELECT * FROM `users` where `link` = ? ", [$link]);
if (($user['id_level'] <= $us['id_level']) or ($user['id'] == $us['id']) OR !$us) {
exit(header("Location: /"));
}
$us['login'] = output($us['login']);
$us['email'] = output($us['email']);
$PageConfig = [
'title' => 'Редактирование - '. $us['login'],
];
PageConfig($PageConfig);
?><div class="title">
<a class="title" style="color:#5ca0c1;" href="/apanel/users/">
Пользователи
</a> /
<?=$PageConfig['title']?>
</div><?
if (isset($_POST['login'])) {
$login = $_POST['login'];
$email = $_POST['email'];
$id_level = $_POST['id_level'];
$status = $_POST['status'];
$newlink = $_POST['link'];
$newlink = translit($newlink,1,1);
if (FileSystem::TextStrlen($newlink) < 3) {
$err[] = ('Персональная ссылка слишком короткая');
}
if (FileSystem::TextStrlen($login) > 16) {
$err[] = ('Логин слишком длинный');
}
if (FileSystem::TextStrlen($login) < 3) {
$err[] = ('Логин слишком короткий');
}
if (FileSystem::TextStrlen($email) > 32) {
$err[] = ('Email слишком длинный');
}
if (FileSystem::TextStrlen($email) < 6) {
$err[] = ('Email слишком короткий');
}
if (!preg_match("/^(?:[a-z0-9]+(?:[-_.]?[a-z0-9]+)?@[a-z0-9_.-]+(?:.?[a-z0-9]+)?.[a-z]{2,5})$/i", $email)) {
$err[] = ('Ошибка в поле email');
}
if(!preg_match("/^p{L}[p{L}d-_ ]+$/ui", $login)) {
$err[] = ('В нике присутствуют запрещенные символы');
}
if (preg_match("#[a-z]+#ui", $login) && preg_match("#[а-я]+#ui", $login)) {
$err[] = ('Разрешается использовать символы только русского или только английского алфавита');
}
$checklogin = $sql->rowCount("SELECT * FROM `users` where `login` = ? ", [$login]);
if ($checklogin == 1 AND $login != $us['login']) {
$err[] = ('Логин уже занят');
}
$checkemail = $sql->rowCount("SELECT * FROM `users` where `email` = ? ", [$email]);
if ($checkemail == 1 AND $email != $us['email']) {
$err[] = 'Email уже занят';
}
$password = false;
if (isset($_POST['password_3']) AND FileSystem::TextStrlen($_POST['password_3'])) {
$password = $_POST['password_3'];
if (stripos(file_get_contents(H.'core/config/if_password.txt'), $password) !== false || $password == $login || is_numeric($password)) {
$err[] = 'Пароль слишком простой';
}
if (FileSystem::TextStrlen($password) < 6) {
$err[] = ('Пароль слишком короткий');
}
if (!isset($err)) {
$password = shif($password);
$password = ", `password` = '{$password}'";
}
}
if (!isset($err)) {
$sql->query("UPDATE `users` SET `link` = ?, `login` = ?, `email` = ?, `id_level` = ?, `status` = ? {$password} WHERE `id` = '{$us['id']}';",
[$newlink, $login, $email, $id_level, $status]
);
CacheDelete::user($us['id']);
redirection('/apanel/user_edit/'. $newlink .'/','Успешно');
}
}
if (isset($err)) {
err($err);
}
?>
<form method="post" name="message" action="">
<div class="post_title_3">Логин</div>
<input class="form-input" type="text" name="login" value="<?=($us['login'])?>">
<div class="post_title_3">Email</div>
<input class="form-input" type="text" name="email" value="<?=($us['email'])?>">
<? if ($user['id_level'] >= 2) : ?>
<div class="post_title_3">Права доступа</div>
<div class="select">
<select name="id_level">
<option value="0" <?=($us['id_level'] == 0 ?" selected='selected'":'')?>>Пользователь (level 0)</option>
<option value="1" <?=($us['id_level'] == 1 ?" selected='selected'":'')?>>Модератор (level 1)</option>
<option value="2" <?=($us['id_level'] == 2 ?" selected='selected'":'')?>>Администратор (level 2)</option>
<option value="3" disabled='disabled'>Системный администратор (level 3)</option>
</select>
</div>
<? endif ?>
<div class="post_title_3">Новый пароль</div>
<input class="form-input" type="text" name="password_3" value="">
<div class="post_title_3">Персональная ссылка</div>
<input class="form-input" type="text" name="link" value="<?=($us['link'])?>">
<div class="post_title_3">Статус</div>
<textarea name="status"><?=output($us['status'],'html')?></textarea><br />
<input value="Сохранить" type="submit">
</form>
<br/>
<?