Файл: page/settings/authlog.php
Строк: 100
<?php
$title = 'История авторизаций';
require_once($_SERVER["DOCUMENT_ROOT"]."/inc/head.php");
if (isset($active)) {
echo '<div class="title">История авторизаций ('.$count_auth.')</div>';
$stmt_count = $connect->prepare("select count(*) from `authlog` where `uid` = ? and `id` = ? and `key` != ?");
// старые авторизации
$stmt_old = $connect->prepare("select count(*) from `authlog` where `status` = ? and `uid` = ?");
$stmt_old->execute(array(0, $user['id']));
$old_auth = $stmt_old->fetchColumn();
if (isset($_GET['exit'])) {
if (isset($_POST['cancel'])) {
header('Location: /settings/authlog');
}
elseif (isset($_POST['ok'])) {
$reset = $connect->prepare("update `authlog` set `status` = '0' where `uid` = ? and `key` != ?");
if ($reset->execute(array($user['id'], $authash))) {
header('Location: /settings/authlog');
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
echo '<div class="menu">
<form action="" method="POST">
<input type="submit" name="ok" value="Подтвердить выход со всех устройств">
<input type="submit" name="cancel" value="Отмена">
</form></div>';
}
elseif (isset($_GET['reset'])) {
$stmt_count->execute(array($user['id'], $_GET['reset'], $authash));
if ($stmt_count->fetchColumn()) {
if (isset($_POST['cancel'])) {
header('Location: /settings/authlog');
}
elseif (isset($_POST['ok'])) {
$reset_auth = $connect->prepare("update `authlog` set `status` = '0' where `uid` = ? and `id` = ?");
if ($reset_auth->execute(array($user['id'], $_GET['reset']))) {
header('Location: /settings/authlog');
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
echo '<div class="menu">
<form action="" method="POST">
<input type="submit" name="ok" value="Сбросить авторизацию ('.intval($_GET['reset']).')">
<input type="submit" name="cancel" value="Отмена">
</form></div>';
} else {
header('Location: /settings/authlog');
}
}
elseif (isset($_GET['clear'])) {
if ($old_auth) {
if (isset($_POST['cancel'])) {
header('Location: /settings/authlog');
}
elseif (isset($_POST['ok'])) {
$error = '';
if (empty($_POST['pass'])) {
$error.= 'Введите пароль!<br/>';
}
elseif (!password_verify($_POST['pass'], $user['pass'])) {
$error.= 'Неверный пароль!<br/>';
}
if ($error) {
echo '<div class="menu">'.$error.'</div>';
} else {
$del_old = $connect->prepare("delete from `authlog` where `status` = ? and `uid` = ?");
if ($del_old->execute(array(0, $user['id']))) {
header('Location: /settings/authlog');
} else {
echo '<div class="menu">Произошла ошибка!</div>';
}
}
}
echo '<div class="menu">
<form action="" method="POST">
Введите пароль от аккаунта:<br/><input type="password" name="pass"><br/>
<input type="submit" name="ok" value="Очистить старые авторизации">
<input type="submit" name="cancel" value="Отмена">
</form></div>';
} else {
header('Location: /settings/authlog');
}
}
echo '<div class="menu">
<div class="butt9">
<a href="?exit"><img src="/img/exit.png" alt="exit">Выйти со всех устройств</a>
'.($old_auth ? '<a href="?clear"><img src="/img/clear.png" alt="clear">Очистить старые авторизации</a>' : '').'
</div></div>';
if ($user['captcha'] && $user['attempts']) {
echo '<div class="menu">
<div class="danger">Возможно вас пытались взломать!
<div class="red">
Время: '.daytime($user['captcha']).'<br/>
Ошибочных попыток ввода пароля: '.$user['attempts'].'
</div>
</div>
</div>';
}
if ($count_auth == 0) {
echo '<div class="menu">Записей нет!</div>';
} else {
$page = new Pagination($count_auth, 10);
$data = $connect->prepare("select * from `authlog` where `uid` = :uid order by `id` desc limit :start, 10");
$data->bindValue(':uid', $user['id'], PDO::PARAM_INT);
$data->bindValue(':start', $page->start, PDO::PARAM_INT);
$data->execute();
$sql = $data->fetchAll();
foreach ($sql as $row) {
echo '<div class="menu">
Время: '.date('d.m.Y H:i', $row['time']).'<br/>
Последнее посещение: '.date('d.m.Y H:i', $row['lasttime']).deviceIcon($row['ua']).'<br/>
'.($row['attempts'] ? 'Ошибочных попыток ввода пароля: '.$row['attempts'].'<br/>' : '').'
IP: '.$row['ip'].'<br/>
UA: '.$row['ua'].
($row['status'] == 1 ? ($authash == $row['key'] ? '<div class="good">Нынешняя авторизация!</div>' : '<div class="butt2"><a href="?reset='.$row['id'].'">Сбросить</a></div>') : '<div class="forbidden">Авторизация сброшена!</div>').'
</div>';
}
$page->navigation();
}
echo '<div class="forlink"><a href="/settings" class="links"><img src="/img/sett.png" alt="sett">Настройки</a></div>';
} else {
header('Location: /');
}
require($_SERVER["DOCUMENT_ROOT"]."/inc/foot.php");
?>