Файл: reg.php
Строк: 29
<?php
require_once('kernel/start.php');
if ($user == true) {
header('location: /');
die();
}
if (isset($_POST['save'])) {
$err = [];
$form = ['kod' => isset($_POST['kod']) ? abs((int)$_POST['kod']) : false, 'user' => isset($_POST['user']) ? check($_POST['user']) : false, 'pass' => isset($_POST['pass']) ? check($_POST['pass']) : false, 'pass2' => isset($_POST['pass2']) ? check($_POST['pass2']) : false];
if ($dbs->query("SELECT COUNT(id) FROM user WHERE user = '$form[user]'")->fetchColumn()>=1) {
$err[] = 'Логин <b>'.$form['user'].'</b> уже зарегистрирован!';
}
elseif (mb_strlen($form['user'])>15 OR mb_strlen($form['user'])<2){
$err[] = 'Слишком длинный или короткий логин!';
}
elseif (mb_strlen($form['pass'])>15 OR mb_strlen($form['pass'])<4){
$err[] = 'Слишком длинный или короткий пароль!';
}
elseif (empty($form['kod']) OR $_SESSION['cap'] != $form['kod']) {
$err[] ='Проверьте правильность ввода капчи.';
}
elseif ($form['pass'] != $form['pass2']) {
$err[] = 'Пароли не совпадают!';
}
elseif (!preg_match('!^[a-z0-9]+$!i',$form['pass'])) {
$err[] = 'В пароле обнаружены запрешенные знаки!';
}
elseif (!preg_match('!^[A-z0-9-_]+$!i',$form['user'])) {
$err[] = 'В логине присутствуют запрещенные символы';
}
if (empty($err)) {
$st = $dbs->prepare("INSERT INTO user SET user = ?, pass = ?, ip = ?, soft = ?, last = ?");
$st->execute([$form['user'],hash_sha1($form['pass']),$ip,$soft,time()]);
$inId = $dbs->lastInsertId();
// устанавливаем cookie + session
setcookie('auth', base64_encode($inId.'::'.hash_sha1($form['pass'])), time()+3600*24*365, '/');
$_SESSION['auth'] = base64_encode($inId.'::'.hash_sha1($form['pass']));
echo 'Регистрация прошла успешно!<br />Логин: ' . $form['user'] . '<br />Пароль: ' . $form['pass'] . '<br/><a href="/">На главную</a>';
die();
} else {
foreach($err as $error) {
echo $error.'<br/>';
}
}
}
$_SESSION['cap'] = mt_rand(1111, 9999);
echo '<form method="post" action="#">*Ваш логин:<br/><input name="user" type="text"/><br/>*Ваш пароль:<br/><input name="pass" type="password"/><br/>*Повторите пароль:<br/><input name="pass2" type="password"/><br/>Капча:<b>'.$_SESSION['cap'].'<br /><input type="text" name="kod" size="6"/><br /><input value="Зарегистрироваться" name="save" type="submit"/></form>';
?>