<?php
require('../flowap/system.php');
switch ($act) {
case 'auts':
$email = functions::htmlred($_POST['email']);
$captcha = functions::htmlred($_POST['captcha']);
// капча
if (empty($captcha) || mb_strlen($captcha) < 2 || mb_strlen($captcha) > 8):
$err = 'Код с картинки введен не правильно.';
elseif ($_SESSION['captcha1'] != $captcha):
$err = 'Код с картинки введен не правильно.';
endif;
// email
if (empty($email) || mb_strlen($email) < 5 || mb_strlen($email) > 100):
$err = 'Не правильная длина Email.';
elseif (filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE):
$err = 'Email указан не верно.';
endif;
//
if(isset($err)):
$d = ['message' => $err,'type' => 'error'];
echo json_encode($d); exit;
else:
$code = mt_rand(199999,999999999);
/// Отправка письма
functions::mailto(
$email,
'⚡️ Авторизация на StrongCMS',
'Спасибо что решили зайти на StrongCMS<br/>
Вы собираетесь авторизоваться на проекте!<br/>
Код для авторизации: '.$code.'<br/>
Если вы не понимаете о чем идет речь, проигнарируйте данное письмо.',
'admin@strongcms.ru'
);
///
$zamena = '<form id="ajax_form" class="_dop33fw3r2e23r" action="" onsubmit="return false;"><input type="number" maxlength="5" name="codes" value="" class="_dop34t5geefgf" autofocus="true" style="padding-right: 0;" placeholder="Код из письма"><input onclick=\'saveaj ("/ajax/logins.php?act=vhodes");return false;\' type="submit" name="add" class="_dop34tgweef" value="Авторизация"></form>';
$_SESSION['good'] = 'Код отправлен к вам на почту.';
DB::$dbs->query('INSERT INTO `logaut` SET `email` = ?, `code` = ?',[$email,$code]);
$idl = DB::$dbs->lastInsertId();
$_SESSION['emailok'] = $idl;
$d = ['zamena' => $zamena, 'type' => 'zamena'];
echo json_encode($d); exit;
endif;
break;
case 'vhodes':
if(empty($_SESSION['emailok'])):
$_SESSION['good'] = 'Ошибка авторизации #1.';
$d = ['location' => '/','type' => 'success'];
echo json_encode($d); exit;
endif;
$str = DB::$dbs->queryFetch('SELECT `code`,`email`,`id` FROM `logaut` WHERE `id` = ? LIMIT 1', [functions::htmlred($_SESSION['emailok'])]);
if(empty($str['id'])):
unset($_SESSION['emailok']);
$_SESSION['good'] = 'Ошибка авторизации #2.';
$d = ['location' => '/','type' => 'success'];
echo json_encode($d); exit;
endif;
$codes = functions::htmlred($_POST['codes']);
if($str['code'] == $codes):
$ips = functions::htmlred($_SERVER['REMOTE_ADDR']);
if(DB::$dbs->querySingle('SELECT COUNT(`id`) FROM `user` WHERE `email` = ?', [$str['email']]) > 0): // такой есть
$token = password_hash(time().$codes, PASSWORD_DEFAULT);
DB::$dbs->query('UPDATE `user` SET `token` = ? WHERE `email` = ? LIMIT 1', [$token,$str['email']]);
setcookie('token', $token, time()+60*60*24*7, '/');
DB::$dbs->query('DELETE FROM `goust` WHERE `ip` = ?',[$ips]);
DB::$dbs->query('DELETE FROM `logaut` WHERE `id` = ?',[$str['id']]);
unset($_SESSION['emailok']);
$_SESSION['good'] = 'Авторизация успешна.';
$d = ['location' => '/','type' => 'success'];
echo json_encode($d); exit;
else: // такого нет
$token = password_hash(time().$codes, PASSWORD_DEFAULT);
DB::$dbs->query('INSERT INTO `user` SET `email` = ?, `token` = ?',[$str['email'],$token]);
$idl = DB::$dbs->lastInsertId();
DB::$dbs->query('UPDATE `user` SET `nick` = ? WHERE `id` = ? LIMIT 1', ['id'.$idl,$idl]);
setcookie('token', $token, time()+60*60*24*7, '/');
DB::$dbs->query('DELETE FROM `goust` WHERE `ip` = ?',[$ips]);
DB::$dbs->query('DELETE FROM `logaut` WHERE `id` = ?',[$str['id']]);
unset($_SESSION['emailok']);
$_SESSION['good'] = 'Авторизация успешна.';
$d = ['location' => '/','type' => 'success'];
echo json_encode($d); exit;
endif;
else:
DB::$dbs->query('UPDATE `logaut` SET `pop` = `pop` + 1 WHERE `id` = ?',[$str['id']]);
$d = ['message' => 'Код введен не верно.','type' => 'error'];
echo json_encode($d); exit;
endif;
break;
}
?>