php конф файл require_once core start php шапка func- head Регистрация

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
<?php
/* конф. файл */
require_once('core/start.php');
/* шапка */
$func->head('Регистрация');
/* проверяем не авторизован ли юзер */
if ($user_id == true) {
header('location:/');
die();
}
if (!isset($_POST['save'])) {
$_SESSION['cap'] = mt_rand(1111, 9999);
echo '<div class="block"><form method="post" action="?">Ваш логин:<br/><input name="user" type="text" maxlength="15" /><br/>Ваш пароль:<br/><input name="pass" type="password" maxlength="12" /><br/>*Повторите пароль:<br/><input name="pass2" type="password" maxlength="12" /><br/>Каптча: <b>'.$_SESSION['cap'].'<br /><input type="text" name="kod" size="6"/><br /><input value="Зарегистрироваться" name="save" type="submit"/></form></div>';
} else {
/* Создаем массив с POST данными */
$form = ['kod' => isset($_POST['kod']) ? $func->num($_POST['kod']) : null, 'user' => isset($_POST['user']) ? $func->check($_POST['user']) : null, 'pass' => isset($_POST['pass']) ? $func->check($_POST['pass']) : null, 'pass2' => isset($_POST['pass2']) ? $func->check($_POST['pass2']) : null,];
/* Проверки на занятость, корректность ввода и т.д. */
if (core::$dbs->querySingle("SELECT COUNT(id) FROM users WHERE user = ?", [$form['user']])>=1) {
$func->err('Логин <b>'.$form['user'].'</b> уже зарегистрирован!');
}
elseif(mb_strlen($form['user'])>15 || mb_strlen($form['user'])<2 || empty($form['user'])){
$func->err('Слишком длинный или короткий логин!');
}
elseif(mb_strlen($form['pass'])>15 OR strlen($form['pass'])<4){
$func->err('Слишком длинный или короткий пароль!');
}
elseif (empty($form['kod']) OR $_SESSION['cap'] != $form['kod']) {
$func->err('Проверьте правильность ввода каптчи.');
unset($_SESSION['cap']);
}
elseif($form['pass'] != $form['pass2']) {
$func->err('Пароли не совпадают!');
}
elseif (!preg_match('!^[a-z0-9]+$!i',$form['pass'])) {
$func->err('В пароле обнаружены запрешенные знаки!');
}
elseif (!preg_match('!^[a-zа-я0-9]+$!i',$form['user'])) {
$func->err('В логине присутствуют запрещенные символы');
} else {
/* Пишем в бд данные */
core::$dbs->query("INSERT INTO users SET user = ?, pass = ?, time_reg = ?, ip = ?, soft = ?", [$form['user'],md5(md5($form['pass'])),time(),$ip,$soft,]);
$last = core::$dbs->lastInsertId();
/* устанавливаем cookie и сессии */
setcookie('auth', base64_encode($last.'::'.md5(md5($form['pass']))), time()+3600*24*365);
$_SESSION['auth'] = base64_encode($last.'::'.md5(md5($form['pass']));
echo block . 'Регистрация прошла успешно!<br />Логин: ' . $form['user'] . '<br />Пароль: ' . $form['pass'] . div;
$func->foot();
die();
}
}
$func->foot();
?>