View file pages/apanel/user_edit.php

File size: 4.67Kb
<?

$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/>	
<?