View file hosting-img/ajax/aut.php

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;
?>