Сборка REDL: панель на PHP 8, капча-тумблер, закрытые уязвимости, установщики в один клик
- панель работает на PHP 8.4 (оригинал под PHP 7.0): elFinder utf8_encode, apache_get_modules, warnings - капча выключена и управляется из админки (флаг captcha_enable + блок настроек) - закрыты две SQL-инъекции без авторизации (createAuthLog: пароль из POST и CF-Connecting-IP) - убрано хранение паролей в открытом виде в authlog, XSS в поле ref - установщики install-panel.sh и install-node.sh (оригинальный затирал sources.list репозиториями Debian 9) - современный Dockerfile (оригинальный на debian:stretch больше не собирается) - планировщик и автозапуск работают без systemd - брендинг REDL.IO, год 2026, ссылки на redl.io - документация на русском: ИЗМЕНЕНИЯ, БЕЗОПАСНОСТЬ, ИНСТРУКЦИЯ
This commit is contained in:
@@ -0,0 +1,577 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
|
||||
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
|
||||
*/
|
||||
?>
|
||||
<?php echo $header ?>
|
||||
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
|
||||
<div class="d-flex flex-column-fluid">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xl-4 col-xxl-4">
|
||||
<div class="card card-custom gutter-b">
|
||||
<div class="card-body">
|
||||
<div class="text-center mb-1">
|
||||
<div class="symbol symbol-60 symbol-circle symbol-xl-90">
|
||||
<div class="symbol-label" style="background-image:url('<?php echo $url ?><?php echo $user_img ?>')"></div>
|
||||
<i class="symbol-badge symbol-badge-bottom bg-success"></i>
|
||||
</div>
|
||||
<h4 class="font-weight-bold my-2"><?php echo $user_firstname ?> <?php echo $user_lastname ?></h4>
|
||||
<div class="text-muted mb-2">Вы с нами: <?php echo $user_date_reg ?> дней</div>
|
||||
</div>
|
||||
<div class="mb-1 text-center">
|
||||
<a href="javascript:;" data-toggle="modal" data-target="#loadhostin" class="btn btn-icon btn-sm btn-default btn-hover-light-primary mr-1">
|
||||
<i class="fas fa-camera icon-md"></i>
|
||||
</a>
|
||||
<a href="javascript:;" data-toggle="modal" data-target="#loadvk" class="btn btn-icon btn-sm btn-default btn-hover-light-primary mr-1">
|
||||
<i class="fab fa-vk icon-md"></i>
|
||||
</a>
|
||||
<a href="javascript:;" data-toggle="modal" data-target="#loadreg" class="btn btn-icon btn-sm btn-default btn-hover-light-primary">
|
||||
<i class="fas fa-cog icon-md"></i>
|
||||
</a>
|
||||
<a href="javascript:;" data-toggle="modal" data-target="#loademail" class="btn btn-icon btn-sm btn-default btn-hover-light-primary">
|
||||
<i class="fas fa-mail-bulk"></i>
|
||||
</a>
|
||||
</div>
|
||||
<div class="separator separator-dashed mt-8 mb-0"></div>
|
||||
</div>
|
||||
<ul class="navi">
|
||||
<li class="navi-item">
|
||||
<a class="navi-link">
|
||||
<span class="symbol symbol-30 mr-3">
|
||||
<span class="symbol-label"><i class="fab fa-vk text-primary"></i></span>
|
||||
</span>
|
||||
<div class="navi-text">
|
||||
<span class="d-block font-weight-bold">VK</span>
|
||||
</div>
|
||||
<span class="label label-light-primary font-weight-bold label-inline"><?php if(!$users['user_vk_id']): ?>Не привязан<?php else: ?><?php echo $users['user_vk_id'] ?><?php endif; ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="navi-item">
|
||||
<a class="navi-link" href="mailto:<?php echo $user['user_email'] ?>">
|
||||
<span class="symbol symbol-30 mr-3">
|
||||
<span class="symbol-label"><i class="fas fa-envelope-open-text text-primary"></i></span>
|
||||
</span>
|
||||
<div class="navi-text">
|
||||
<span class="d-block font-weight-bold">Email</span>
|
||||
</div>
|
||||
<span class="label label-light-primary font-weight-bold label-inline"><?php echo $user['user_email'] ?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="navi-item">
|
||||
<a class="navi-link" href="/account/bonus">
|
||||
<span class="symbol symbol-30 mr-3">
|
||||
<span class="symbol-label"><i class="fas fa-smile-beam text-primary"></i></span>
|
||||
</span>
|
||||
<div class="navi-text">
|
||||
<span class="d-block font-weight-bolder">Бонусы</span>
|
||||
</div>
|
||||
<span class="label label-light-primary font-weight-bold label-inline"><?echo $users['bonuses']?></span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="navi-item">
|
||||
<a class="navi-link" href="/servers">
|
||||
<span class="symbol symbol-30 mr-3">
|
||||
<span class="symbol-label"><i class="fas fa-server text-primary"></i></span>
|
||||
</span>
|
||||
<div class="navi-text">
|
||||
<span class="d-block font-weight-bolder">Сервера</span>
|
||||
</div>
|
||||
<span class="label label-light-primary font-weight-bold label-inline">
|
||||
<?$serverov = 0; foreach($servers as $item): ?>
|
||||
<? $serverov++; ?>
|
||||
<?endforeach;echo $serverov; ?>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="navi-item">
|
||||
<a class="navi-link" href="/tickets">
|
||||
<span class="symbol symbol-30 mr-3">
|
||||
<span class="symbol-label"><i class="fas fa-headset text-primary"></i></span>
|
||||
</span>
|
||||
<div class="navi-text">
|
||||
<span class="d-block font-weight-bolder">Тикеты</span>
|
||||
</div>
|
||||
<span class="label label-light-primary font-weight-bold label-inline">
|
||||
<?$ticketov = 0; foreach($tickets as $item): ?>
|
||||
<? $ticketov++; ?>
|
||||
<?endforeach;echo $ticketov; ?>
|
||||
</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="navi-item">
|
||||
<a class="navi-link" href="/account/invoices">
|
||||
<span class="symbol symbol-30 mr-3">
|
||||
<span class="symbol-label"><i class="fas fa-piggy-bank text-primary"></i></span>
|
||||
</span>
|
||||
<div class="navi-text">
|
||||
<span class="d-block font-weight-bolder">Баланс</span>
|
||||
</div>
|
||||
<span class="label label-light-primary font-weight-bold label-inline"><?php echo $user_balance ?></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xl-8 col-xxl-8">
|
||||
<div class="card card-custom">
|
||||
<div class="card-header card-header-tabs-line nav-tabs-line-3x">
|
||||
<div class="card-toolbar">
|
||||
<ul class="nav nav-tabs nav-bold nav-tabs-line nav-tabs-line-3x">
|
||||
<li class="nav-item mr-3">
|
||||
<a class="nav-link active" data-toggle="tab" href="#partner">
|
||||
<span class="nav-icon">
|
||||
<i class="fas fa-people-arrows"></i>
|
||||
</span>
|
||||
<span class="nav-text font-size-lg">Партнерская программа</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item mr-3">
|
||||
<a class="nav-link" data-toggle="tab" href="#waste">
|
||||
<span class="nav-icon">
|
||||
<i class="fas fa-retweet"></i>
|
||||
</span>
|
||||
<span class="nav-text font-size-lg">Операции</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item mr-3">
|
||||
<a class="nav-link" data-toggle="tab" href="#visitors">
|
||||
<span class="nav-icon">
|
||||
<i class="fas fa-door-open"></i>
|
||||
</span>
|
||||
<span class="nav-text font-size-lg">Логи авторизации</span>
|
||||
</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#auths">
|
||||
<span class="nav-icon">
|
||||
<i class="fas fa-chalkboard-teacher"></i>
|
||||
</span>
|
||||
<span class="nav-text font-size-lg">Сеансы</span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="tab-content mt-5">
|
||||
<div class="tab-pane fade show active" id="partner" role="tabpanel">
|
||||
<div class="alert alert-primary mb-5 p-5" role="alert">
|
||||
<h4 class="alert-heading">Партнерская программа</h4>
|
||||
<p>У вас есть возможность заработать вместе с нами, приглашая друзей.</p>
|
||||
<div class="border-bottom border-white opacity-20 mb-5"></div>
|
||||
<p class="mb-0">Всего заработано: <?echo $users['rmoney']; ?> руб.</p>
|
||||
</div>
|
||||
<div class="alert alert-primary mb-5 p-5" role="alert">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="hostinreff" placeholder="http://<?echo $_SERVER['SERVER_NAME']?>/account/login?ref=<?php echo $user_id ?>" value="http://<?echo $_SERVER['SERVER_NAME']?>/account/login?ref=<?php echo $user_id ?>">
|
||||
<div class="input-group-append" style="z-index: 0;">
|
||||
<a class="btn btn-light-primary btn-icon" data-clipboard="true" data-clipboard-target="#hostinreff"><i class="flaticon2-document"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php foreach($userg as $item):?>
|
||||
<? if (!($item['ref'] == $user_id)) { // пропуск нечетных чисел
|
||||
continue;
|
||||
}?>
|
||||
<div class="card card-custom bg-gray-100 mb-4">
|
||||
<div class="card-header border-0" style="min-height: 0;padding-top: 0.5rem;padding-bottom: 0.5rem;">
|
||||
<h3 class="card-title"><?php echo $item['user_firstname'] ?> <?php echo $item['user_lastname'] ?><small class="text-muted font-size-sm ml-2"><?php echo $item['user_date_reg'] ?></small></h3>
|
||||
<div class="card-toolbar">
|
||||
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="ID">ID <?php echo $item['user_id'] ?></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?$ust = 0;
|
||||
foreach($userg as $item): ?>
|
||||
<? if (!($item['ref'] == $user_id)) { // пропуск нечетных чисел
|
||||
continue;
|
||||
}?>
|
||||
<? $ust++; ?>
|
||||
<?endforeach; ?>
|
||||
<?php if(empty($ust)): ?>
|
||||
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
|
||||
<div class="alert-icon">
|
||||
<i class="flaticon-exclamation"></i>
|
||||
</div>
|
||||
<div class="alert-text">На данный момент у вас нет приглашенных друзей.</div>
|
||||
<div class="alert-close">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">
|
||||
<i class="ki ki-close"></i>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="waste" role="tabpanel">
|
||||
<?php foreach($waste as $item): ?>
|
||||
<div class="card card-custom bg-gray-100 mb-4">
|
||||
<div class="card-header border-0" style="min-height: 0;padding-top: 0.5rem;padding-bottom: 0.5rem;">
|
||||
<h3 class="card-title"><?php echo $item['waste_usluga'] ?></h3>
|
||||
<div class="card-toolbar">
|
||||
<?php if($item['waste_status'] == 1): ?>
|
||||
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>">- <?php echo $item['waste_ammount'] ?> руб</span>
|
||||
<?php elseif($item['waste_status'] == 0): ?>
|
||||
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['waste_date_add'])) ?>">+ <?php echo $item['waste_ammount'] ?> руб</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php if(empty($waste)): ?>
|
||||
<div class="alert alert-custom alert-light-primary fade show mb-4" role="alert">
|
||||
<div class="alert-icon">
|
||||
<i class="flaticon-exclamation"></i>
|
||||
</div>
|
||||
<div class="alert-text">На данный момент у вас нет операций со счетом.</div>
|
||||
<div class="alert-close">
|
||||
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
|
||||
<span aria-hidden="true">
|
||||
<i class="ki ki-close"></i>
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="visitors" role="tabpanel">
|
||||
<?php foreach($visitors as $item):?>
|
||||
<div class="card card-custom bg-gray-100 mb-4">
|
||||
<div class="card-header border-0" style="min-height: 0;padding-top: 0.5rem;padding-bottom: 0.5rem;">
|
||||
<h3 class="card-title"><?php echo $item['country'] ?>(<?php echo $item['code'] ?>) <?php echo $item['city'] ?><small class="text-muted font-size-sm ml-2"><?php echo $item['ip'] ?></small></h3>
|
||||
<div class="card-toolbar">
|
||||
<?php if($item['status'] == 0): ?>
|
||||
<span class="badge badge-danger" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?>">Ошибка входа (пароль <?php echo $item['password'] ?>)</span>
|
||||
<?php elseif($item['status'] == 1): ?>
|
||||
<span class="badge badge-success" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?>">Вход в систему</span>
|
||||
<?php elseif($item['status'] == 2): ?>
|
||||
<span class="badge badge-warning" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата операции: <?php echo date("d.m.Y в H:i", strtotime($item['datetime'])) ?>">Выход из системы</span>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="auths" role="tabpanel">
|
||||
<?php foreach($auths as $item): ?>
|
||||
<div class="card card-custom bg-gray-100 mb-4" id="session-<?php echo $item['auth_id'] ?>">
|
||||
<div class="card-header border-0" style="min-height: 0;padding-top: 0.5rem;padding-bottom: 0.5rem;">
|
||||
<h3 class="card-title"><span class="card-icon">
|
||||
<a href="javascript:;" class="btn btn-icon btn-light-primary btn-sm" data-toggle="tooltip" data-placement="right" title="" data-original-title="<?php if($item['auth_type'] == "Vk"): ?>Тип сеанса: ВКонтакте<?php elseif($item['auth_type'] == "Password"): ?>Тип сеанса: E-mail/Пароль<?php else: ?>Тип сеанса: Другой<?php endif; ?>">
|
||||
<i class="fa fa-info-circle"></i>
|
||||
</a></span><?php if($item['auth_key'] == @$_COOKIE['uid']): ?>Текущий<?php else: ?>Активный<?php endif; ?><small class="text-muted font-size-sm ml-2"><?php echo $item['user_ip'] ?></small>
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Дата создания" style="margin-right: .25rem"><?php echo date("d.m.Y в H:i", strtotime($item['auth_date_add'])) ?></span>
|
||||
<span class="badge badge-primary" data-toggle="tooltip" data-placement="right" title="" data-original-title="Последняя активность" style="margin-right: .25rem"><?php echo date("d.m.Y в H:i", strtotime($item['user_last_activity'])) ?></span>
|
||||
<a href="javascript:;" onClick="sendAction('closeSession',<?php echo $item['auth_id'] ?>)" class="btn btn-icon btn-light-danger btn-xs" data-toggle="tooltip" data-placement="right" title="" data-original-title="Завершить сеанс">
|
||||
<i class="fa fa-times"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--begin::Modal-->
|
||||
<div class="modal fade" id="loadvk" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Редактирование профиля VK</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<i aria-hidden="true" class="ki ki-close"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="alert alert-primary mb-5 p-5" role="alert">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fab fa-vk text-primary"></i>
|
||||
</span>
|
||||
</div>
|
||||
<?php if(!$users['user_vk_id']): ?>
|
||||
<input type="text" class="form-control" disabled="disabled" value="Профиль не привязан">
|
||||
<div class="input-group-append">
|
||||
<a href="javascript:;" onclick="VK.Auth.login(authInfo); return false;" class="btn btn-light-primary btn-icon" data-toggle="tooltip" data-placement="right" title="" data-original-title="Привязать"><i class="fas fa-user-plus"></i></a>
|
||||
</div>
|
||||
<?php else:?>
|
||||
<input type="text" class="form-control" disabled="disabled" value="<?php echo $users['user_vk_id'] ?>">
|
||||
<div class="input-group-append">
|
||||
<a href="javascript:;" onClick="sendAction('unsetVk', null)" class="btn btn-light-primary btn-icon" data-toggle="tooltip" data-placement="right" title="" data-original-title="Отвязать"><i class="fas fa-user-times"></i></a>
|
||||
</div>
|
||||
<?php endif;?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--begin::Modal-->
|
||||
<!--begin::Modal-->
|
||||
<div class="modal fade" id="loadhostin" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Загрузка аватара</h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<i aria-hidden="true" class="ki ki-close"></i>
|
||||
</button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="imgForm" method="POST" style="padding:0px; margin:0px;">
|
||||
<div class="alert alert-primary mb-5 p-5" role="alert">
|
||||
<div class="input-group">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">
|
||||
<i class="fas fa-camera text-primary"></i>
|
||||
</span>
|
||||
</div>
|
||||
<input class="form-control" id="file" name="userfile" type="file">
|
||||
<div class="input-group-append">
|
||||
<button type="submit" class="btn btn-light-primary btn-icon"><i class="fa fa-download"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--begin::Modal-->
|
||||
<!--begin::Modal-->
|
||||
<div class="modal fade" id="loadreg" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Настройки профиля<small class="text-muted font-size-sm ml-2">Ваш ID <?php echo $user_id ?></small></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<i aria-hidden="true" class="ki ki-close"></i>
|
||||
</button>
|
||||
</div>
|
||||
<form id="editForm" method="POST" style="padding:0px; margin:0px;">
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label>Ваше Имя</label>
|
||||
<input class="form-control" id="firstname" name="firstname" placeholder="Введите ваше имя" value="<?php echo $user['firstname'] ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Ваша Фамилия</label>
|
||||
<input class="form-control" id="lastname" name="lastname" placeholder="Введите вашу фамилию" value="<?php echo $user['lastname'] ?>">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Ваш E-mail</label>
|
||||
<input class="form-control" id="user_email" name="user_email" placeholder="Ваш E-mail" value="<?php echo $user['user_email'] ?>" disabled>
|
||||
</div>
|
||||
<div class="card card-body" style="margin-bottom: 1rem;padding: 1rem;">
|
||||
<div class="form-group" style="margin-bottom: 0rem;">
|
||||
<div class="checkbox-list">
|
||||
<label class="checkbox">
|
||||
<input type="checkbox" id="editpassword" name="editpassword" onChange="togglePassword()">
|
||||
<span></span>
|
||||
Сменить пароль
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Пароль</label>
|
||||
<input class="form-control" id="password" name="password" placeholder="Пароль" disabled>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label>Повторите пароль</label>
|
||||
<input class="form-control" id="password2" name="password2" placeholder="Повторите пароль" disabled>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light-primary font-weight-bold" data-dismiss="modal">Отмена</button>
|
||||
<button type="submit" class="btn btn-primary font-weight-bold">Сохранить</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--begin::Modal-->
|
||||
<!--begin::Modal-->
|
||||
<div class="modal fade" id="loademail" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog" role="document">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="exampleModalLabel">Смена E-Mail <small class="text-muted font-size-sm ml-2">Ваш E-Mail <?php echo $user['user_email'] ?></small></h5>
|
||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
|
||||
<i aria-hidden="true" class="ki ki-close"></i>
|
||||
</button>
|
||||
</div>
|
||||
<form id="editFormEmail" method="POST" style="padding:0px; margin:0px;">
|
||||
<div class="modal-body">
|
||||
<div class="form-group">
|
||||
<label>Новый E-Mail</label>
|
||||
<input class="form-control" id="email" name="email" placeholder="Введите новый E-mail">
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-light-primary font-weight-bold" data-dismiss="modal">Отмена</button>
|
||||
<button type="submit" class="btn btn-primary font-weight-bold">Отправить</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--begin::Modal-->
|
||||
<script src="/assets/js/clipboard.js" type="text/javascript"></script>
|
||||
<script src="//vk.com/js/api/openapi.js" type="text/javascript"></script>
|
||||
<script>
|
||||
function sendAction(action, auth_id) {
|
||||
switch(action) {
|
||||
case "closeSession":
|
||||
{
|
||||
if(!confirm("Вы действительно хотите закончить данный сеанс?")) return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$.ajax({
|
||||
url: '/main/acc/action/'+action,
|
||||
type: "POST",
|
||||
data: {auth_id: auth_id},
|
||||
dataType: 'text',
|
||||
success: function(data) {
|
||||
data = $.parseJSON(data);
|
||||
switch(data.status) {
|
||||
case 'error':
|
||||
toastr.error(data.error);
|
||||
break;
|
||||
case 'success':
|
||||
$("div[id=session-"+auth_id+']').remove();
|
||||
toastr.success(data.success);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#editForm').ajaxForm({
|
||||
url: '/main/acc/ajax',
|
||||
dataType: 'text',
|
||||
success: function(data) {
|
||||
console.log(data);
|
||||
data = $.parseJSON(data);
|
||||
switch(data.status) {
|
||||
case 'error':
|
||||
$('button[type=submit]').prop('disabled', false);
|
||||
toastr.error(data.error);
|
||||
break;
|
||||
case 'success':
|
||||
$('button[type=submit]').prop('disabled', false);
|
||||
toastr.success(data.success);
|
||||
setTimeout("reload()", 1500);
|
||||
break;
|
||||
}
|
||||
},
|
||||
beforeSubmit: function(arr, $form, options) {
|
||||
$('button[type=submit]').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
$('#editFormEmail').ajaxForm({
|
||||
url: '/main/acc/change_email',
|
||||
dataType: 'text',
|
||||
success: function(data) {
|
||||
console.log(data);
|
||||
data = $.parseJSON(data);
|
||||
switch(data.status) {
|
||||
case 'error':
|
||||
$('button[type=submit]').prop('disabled', false);
|
||||
toastr.error(data.error);
|
||||
break;
|
||||
case 'success':
|
||||
$('button[type=submit]').prop('disabled', false);
|
||||
toastr.success(data.success);
|
||||
setTimeout("reload()", 2250);
|
||||
break;
|
||||
}
|
||||
},
|
||||
beforeSubmit: function(arr, $form, options) {
|
||||
$('button[type=submit]').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
$('#imgForm').ajaxForm({
|
||||
url: '/main/acc/img',
|
||||
dataType: 'text',
|
||||
success: function(data) {
|
||||
data = $.parseJSON(data);
|
||||
switch(data.status) {
|
||||
case 'error':
|
||||
$('button[type=submit]').prop('disabled', false);
|
||||
toastr.error(data.error);
|
||||
$("#file").val("");
|
||||
break;
|
||||
case 'success':
|
||||
$('button[type=submit]').prop('disabled', false);
|
||||
toastr.success(data.success);
|
||||
$('#loadhostin').modal('hide');
|
||||
$("#file").val("");
|
||||
setTimeout("reload()", 1500);
|
||||
break;
|
||||
}
|
||||
},
|
||||
beforeSubmit: function(arr, $form, options) {
|
||||
$('button[type=submit]').prop('disabled', true);
|
||||
}
|
||||
});
|
||||
|
||||
function togglePassword() {
|
||||
var status = $('#editpassword').is(':checked');
|
||||
if(status) {
|
||||
$('#password').prop('disabled', false);
|
||||
$('#password2').prop('disabled', false);
|
||||
} else {
|
||||
$('#password').prop('disabled', true);
|
||||
$('#password2').prop('disabled', true);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<script>
|
||||
VK.init({
|
||||
apiId: <?php echo $vk_id ?>
|
||||
});
|
||||
|
||||
function authInfo(response) {
|
||||
if(response.session) {
|
||||
$.ajax({
|
||||
url: "/main/acc/action/setVk",
|
||||
type: "POST",
|
||||
data: {auth: true, response: response},
|
||||
success: function (data) {
|
||||
data = $.parseJSON(data);
|
||||
switch(data.status) {
|
||||
case 'error':
|
||||
toastr.error(data.error);
|
||||
break;
|
||||
case 'success':
|
||||
toastr.success(data.success);
|
||||
setTimeout("reload()", 1500);
|
||||
break;
|
||||
case 'info':
|
||||
toastr.info(data.info);
|
||||
setTimeout("reload()", 1500);
|
||||
break;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<?php echo $footer ?>
|
||||
@@ -0,0 +1,41 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
|
||||
Developed by Samir Shelenko and Alexander Zemlyanoy (https://vk.com/id00v / https://vk.com/mrsasha082)
|
||||
*/
|
||||
?>
|
||||
<html lang="ru">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<title><?php echo $error ?></title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" />
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />
|
||||
<link href="/assets/css/login-2.css" rel="stylesheet" type="text/css" />
|
||||
<link href="/assets/css/plugins.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link href="/assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link rel="shortcut icon" href="/favicon.ico" />
|
||||
</head>
|
||||
<body id="kt_body" class="header-fixed header-mobile-fixed subheader-enabled page-loading">
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<div class="login login-2 login-signin-on d-flex flex-column flex-column-fluid bg-white position-relative overflow-hidden" id="kt_login">
|
||||
<div class="login-body d-flex flex-column-fluid align-items-stretch justify-content-center">
|
||||
<div class="container row">
|
||||
<div class="col-lg-6 d-flex align-items-center">
|
||||
<div class="login-form login-signin">
|
||||
<div class="form rounded-lg p-3">
|
||||
<div class="alert alert-primary text-center h5" role="alert"><?php echo $error ?></div>
|
||||
<hr>
|
||||
<center>
|
||||
<span class="text-muted font-weight-bold font-size-h4">Упс... Что-то пошло не так.<br>
|
||||
<a href="/" id="kt_login_signup" class="text-primary font-weight-bolder">Вернутся на главную</a></span>
|
||||
</center>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 bgi-size-contain bgi-no-repeat bgi-position-y-center bgi-position-x-center min-h-150px mt-10 m-md-0 offcanvas-mobile" style="background-image: url(/application/public/img/error.gif)"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,99 @@
|
||||
<?php
|
||||
/*
|
||||
Copyright (c) 2020 HOSTINPL (HOSTING-RUS) https://vk.com/hosting_rus
|
||||
Developed by Samir Shelenko (https://vk.com/id00v)
|
||||
*/
|
||||
?>
|
||||
<?php echo $header ?>
|
||||
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
|
||||
<div class="d-flex flex-column-fluid">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-6 col-xl-6 mb-5">
|
||||
<div class="card card-custom wave wave-animate-slow mb-8 mb-lg-0">
|
||||
<div class="card-body">
|
||||
<div class="d-flex align-items-center p-5">
|
||||
<div class="mr-6">
|
||||
<span class="svg-icon svg-icon-primary svg-icon-4x">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<rect x="0" y="0" width="24" height="24"/>
|
||||
<path d="M3,4 L20,4 C20.5522847,4 21,4.44771525 21,5 L21,7 C21,7.55228475 20.5522847,8 20,8 L3,8 C2.44771525,8 2,7.55228475 2,7 L2,5 C2,4.44771525 2.44771525,4 3,4 Z M10,10 L20,10 C20.5522847,10 21,10.4477153 21,11 L21,19 C21,19.5522847 20.5522847,20 20,20 L10,20 C9.44771525,20 9,19.5522847 9,19 L9,11 C9,10.4477153 9.44771525,10 10,10 Z" fill="#000000"/>
|
||||
<rect fill="#000000" opacity="0.3" x="2" y="10" width="5" height="10" rx="1"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="d-flex flex-column">
|
||||
<a href="#" class="text-dark text-hover-primary font-weight-bold font-size-h4 mb-3">Удобная панель управления</a>
|
||||
<div class="text-dark-75">С нашей панелью управления, управлять сервером легко и просто с ней справится как опытный пользователь так и новичок.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-6 col-xl-6 mb-5">
|
||||
<div class="card card-custom wave wave-animate-slow mb-8 mb-lg-0">
|
||||
<div class="card-body">
|
||||
<div class="d-flex align-items-center p-5">
|
||||
<div class="mr-6">
|
||||
<span class="svg-icon svg-icon-primary svg-icon-4x">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24px" height="24px" viewBox="0 0 24 24" version="1.1">
|
||||
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<rect x="0" y="0" width="24" height="24"/>
|
||||
<path opacity="0.3" fill-rule="evenodd" clip-rule="evenodd" d="M14.4862 18L12.7975 21.0566C12.5304 21.54 11.922 21.7153 11.4386 21.4483C11.2977 21.3704 11.1777 21.2597 11.0887 21.1255L9.01653 18H5C3.34315 18 2 16.6569 2 15V6C2 4.34315 3.34315 3 5 3H19C20.6569 3 22 4.34315 22 6V15C22 16.6569 20.6569 18 19 18H14.4862Z" fill="black"/>
|
||||
<path fill-rule="evenodd" clip-rule="evenodd" d="M6 7H15C15.5523 7 16 7.44772 16 8C16 8.55228 15.5523 9 15 9H6C5.44772 9 5 8.55228 5 8C5 7.44772 5.44772 7 6 7ZM6 11H11C11.5523 11 12 11.4477 12 12C12 12.5523 11.5523 13 11 13H6C5.44772 13 5 12.5523 5 12C5 11.4477 5.44772 11 6 11Z" fill="black"/>
|
||||
</g>
|
||||
</svg>
|
||||
</span>
|
||||
</div>
|
||||
<div class="d-flex flex-column">
|
||||
<a href="#" class="text-dark text-hover-primary font-weight-bold font-size-h4 mb-3">Техническая поддержка</a>
|
||||
<div class="text-dark-75">Наша техническая поддержка работает "7" дней в неделю "24" часа в сутки "365" дней в году. Мы готовы помочь вам в любое время суток.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-lg-12 col-xl-12 mb-5">
|
||||
<div class="timeline timeline-justified timeline-4">
|
||||
<div class="timeline-items">
|
||||
<?php foreach($news as $item): ?>
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-badge">
|
||||
<div class="bg-primary"></div>
|
||||
</div>
|
||||
<div class="timeline-label text-primary">
|
||||
<span class="text-primary font-weight-bold"><?php echo date("d.m.Y в H:i", strtotime($item['news_date_add'])) ?></span>
|
||||
</div>
|
||||
<div class="timeline-content">
|
||||
<?php echo $item['news_title'] ?>
|
||||
<br>
|
||||
<a href="/news/view/index/<?echo $item['news_id']?>" class="text-hover-danger">Читать полностью</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php endforeach; ?>
|
||||
<?php if(empty($news)): ?>
|
||||
<div class="timeline-item">
|
||||
<div class="timeline-badge">
|
||||
<div class="bg-primary"></div>
|
||||
</div>
|
||||
<div class="timeline-label text-primary">
|
||||
<span class="text-primary font-weight-bold">News</span>
|
||||
</div>
|
||||
<div class="timeline-content">
|
||||
К сожалению, на данный момент на хостинге нет новостей
|
||||
<br>
|
||||
<a href="https://redl.io" target="_blank" class="text-hover-danger">Новости и статусы на REDL.IO</a>
|
||||
</div>
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $pagination ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<?php echo $footer ?>
|
||||
Reference in New Issue
Block a user