File size: 2.29Kb
<?php
// Подключаем системный файл
require('../class/system.php');
$d = ['message' => 'dawdawd','type' => 'error'];
echo json_encode($d);
// Фильтруем раздел
$type = functions::htmlred($_POST['type']);
// Дальше идет авторизация
if($type == 'aut'):
// Фильтруем переменные
$login = functions::htmlred($_POST['login']); // Логин
$password = functions::htmlred($_POST['password']); // пароль
// Проверка на ошибки
if(empty($login) || mb_strlen($login) < 2 || mb_strlen($login) > 20):
$err = 'Логин должен быть от 2 до 20 символов.';
elseif(empty($password) || mb_strlen($password) < 6 || mb_strlen($password) > 30):
$err = 'Пароль должен быть от 6 до 30 символов.';
elseif(DB::$dbs->querySingle('SELECT COUNT(`id`) FROM `user` WHERE `login` = ?', [$login]) == 0):
$err = 'Такого пользователя не существует.';
endif;
// Если условия выше не выполнены то смотрим закешировнный пароль
$row = DB::$dbs->queryFetch('SELECT `password`,`id` FROM `user` WHERE `login` = ? LIMIT 1', [$login]);
// Проверяем совпадают ли пароли с кешем
if (empty($errm) and (password_verify($password, $row['password']) == false)):
$err = 'Пароль неправильный.';
endif;
// Вывод ошибок пользователю (если есть)
if(isset($err)): // Тут мы находим и выводим ошибки пользователю
$d = ['message' => $err,'type' => 'error'];
echo json_encode($d);
else:
// Обновляем токен пользователя при успешной авторизации
$token = password_hash($row['id'].$password, PASSWORD_DEFAULT); // Генерируем токен
DB::$dbs->query('UPDATE `user` SET `token` = ? WHERE `id` = ? LIMIT 1', [$token,$row['id']]);
// Заполняем куки
setcookie('token', $token, time()+60*60*24*7, '/');
// Авторизовываем
$d = ['location' => 'https://riblog.ru','type' => 'success'];
echo json_encode($d);
endif;
endif;
?>