Файл: 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/>    
<?