View file pages/user/signin.php

File size: 3.13Kb
<?
$PageConfig = [
	'title' => 'Регистрация',
];

PageConfig($PageConfig);

if (isset($_POST['login'], $_POST['password_1'], $_POST['password_2']) AND $_POST['login'] != null) {
	$login = trim($_POST['login']);
	$email = trim($_POST['email']);

	$password_1 = trim($_POST['password_1']);
	$password_2 = trim($_POST['password_2']);
	
	$_SESSION['login'] = $login;
	$_SESSION['email'] = $email;
	
	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) {
		$err[] = ('Логин уже занят');
	}
	$checkemail = $sql->rowCount("SELECT * FROM `users` where `email` = ? ", [$email]);
	if ($checkemail == 1) {
		$err[] = ('Email уже занят');
	}
	if (stripos(file_get_contents(H.'core/config/badnick.txt'), $login) !== false) {
		$err[] = ('Логин запрещён к регистрации');
	}
	if ($password_1 != $password_2) {
		$err[] = 'Пароли не совпадают';
	}
	if (stripos(file_get_contents(H.'core/config/if_password.txt'), $password_1) !== false || $password_1 == $login || is_numeric($password_1)) {
		$err[] = 'Пароль слишком простой';
	}
	if (FileSystem::TextStrlen($password_1) < 6) {
		$err[] = ('Пароль слишком короткий');
	}
	$link = translit($login,1,1);
	$avatar = '_default_'.mt_rand(1,2).'.jpg';
	$token = md5(time() . mt_rand(1,99999));
	if (!isset($err)) {
		$sql->query("INSERT INTO `users` (`avatar`,`date_create`, `link`, `login`, `token`, `email`, `password`) VALUES (?, ?, ?, ?, ?, ?, ?);",
			[
				$avatar, time(), $link, $login, $token, $email, shif($password_1)
			]
		);
		
		$niwid = $sql->id();
		$sql->query("INSERT INTO `users_password` (`id_user`, `pass`, `date_create`) values ('{$niwid}', ? , '{$system['time']}')", [shif($password_1)]);
		
		$_SESSION['user_id'] = $niwid;
		cookie('user_id', $niwid, $set['user_cookie']);
		cookie('user_pass', shif($password_1), $set['user_cookie']);	
		
		unset($_SESSION['email'],$_SESSION['login']);		
		Redirection((isset($_SESSION['url']) ? $_SESSION['url'] : '/user/'));
	}
}
if (isset($err)) {
	err($err);
}
echo $t->fetch('user.signin');