php Инклудим ядро include_once _SERVER DOCUMENT_ROOT core system php Т

 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
<?php
// Инклудим ядро
include_once ($_SERVER['DOCUMENT_ROOT']."/core/system.php");
// Только для гостей
$profile->access(false);
// Обработка формы
if (isset($_POST['login']) && isset($_POST['password'])) {
// Обработка логина и пароля
$login = $system->check($_POST['login']);
$password = $system->check($_POST['password']);
// Проверяем есть ли такой пользователь
$aut = DB :: $dbh -> queryFetch("SELECT * FROM `user` WHERE `login`=? LIMIT 1;", array($login));
// Только если данный пользователь существует
if (!empty($aut)) {
// Проверяем данные
if ($login == $aut['login'] && $password == $aut['password']) {
// Проверяем частоту авторизаций
$authorization = DB :: $dbh -> querySingle("SELECT count(*) FROM `authorization` WHERE `user`=? AND `time`>?;", array($aut['id'], time()-300));
// Только если было меньше 3 входов за 300 секунд
if ($authorization < 3) {
// Проверяем наличие блокировки
$ban = DB :: $dbh -> querySingle("SELECT count(*) FROM `user_ban` WHERE `user`=? AND `time`>?;", array($aut['id'], time()));
// Только если пользователь не забанен
if (empty($ban)) {
// Генерируем sid
$sid = md5(md5($aut['login'].time()));
// Обновляем информацию
DB :: $dbh -> query("UPDATE `user` SET `ip`=?, `ua`=?, `sid`=? WHERE `id`=? LIMIT 1;", array($system->ip(), $system->ua(), $sid, $aut['id']));
// Запись в историю входов
DB :: $dbh -> query("INSERT INTO `authorization` (`user`, `ip`, `ua`, `time`) VALUES (?, ?, ?, ?);", array($aut['id'], $system->ip(), $system->ua(), time()));
// Запись данных в COOKIE
setcookie("sid", $sid, time() + 3600 * 24 * 1, "/", "qxaks.keo.su");
// Если всё отлично перенаправляем на стартовую
$system->redirect("Добро пожаловать", "/modules/startpage/");
// Выводим ошибки
} else { $system->redirect("Вы были заблокированы на ".DOMAIN."", "/modules/profile/ban/".$aut['id'].""); }
} else { $system->redirect("Вы очень часто входите на ".DOMAIN.". Подождите 5 минут и попробуйте снова", "/modules/authorization/"); }
} else { $system->redirect("Неправильный пароль", "/modules/authorization/"); }
} else { $system->redirect("Данный пользователь не существует", "/modules/authorization/"); }
} else { $system->redirect("Отказано в доступе", "/modules/authorization/"); }
?>