<?
define('SHCMS_ENGINE',true);
include_once('../engine/system/core.php');
engine::auth();
$templates->template(Lang::__('Авторизация'));
$_IP = engine::get_ip();
$time = time();
$hash_login = '';
$error = array();
$AboutGuest = new AboutGuest;
if( isset($_POST['submit'])) {
$login = $db->safesql(filter_input( INPUT_POST, 'nick', FILTER_SANITIZE_STRING ) );
$password = $db->safesql(filter_input(INPUT_POST, 'password', FILTER_SANITIZE_STRING) );
if( engine::strlen_shcms( $login,'utf-8' ) > 30 or engine::strlen_shcms( trim( $login ), 'utf-8' ) < 3) $error['nick'][] = 'Недопустимая длина ника. Логин должен быть больше 3 символов и меньше 30 символов!';
if( preg_match( "/[\||\'|\<|\>|\[|\]|\"|\!|\?|\$|\@|\/|\\\|\&\~\*\{\+]/", $login ) ) $error['nick'][] = 'Введенный ник Недопустим';
if( strlen($password) < 5 ) $error['password'][] = 'Пароль должен быть выше 5 символов';
if( strpos( strtolower( $login ), '.php' ) !== false ) $error['nick'][] = 'Введенный ник недопустим';
if( stripos( urlencode($login), '%AD') !== FALSE) {
$error['nick'][] = 'Введенный ник недопустим';
}
if(empty($error)) {
$userl = $db->query( "SELECT * FROM `users` WHERE `nick` = '{$login}' LIMIT 1" );
if($db->num_rows($userl)) {
$user_aut = $db->get_array($userl);
if(engine::shgen($password) == $user_aut['password']) {
// Если все проверки прошли удачно, подготавливаем вход на сайт
if (isset($_POST['code'])) {
// Установка данных COOKIE
$cuser_id = base64_encode($user_aut['id']);
$cpassword = engine::shgen($password);
setcookie("cuser_id_shcms", $cuser_id, time() + 3600 * 24 * 365);
setcookie("cpassword_shcms", $cpassword, time() + 3600 * 24 * 365);
}
// Установка данных сессии
$_SESSION['user_id_shcms'] = $user_aut['id'];
$_SESSION['password_shcms'] = engine::shgen($password);
header("Location: ../index.php");
}else{
$user_auth = $db->get_array($db->query("SELECT * FROM `users` WHERE `nick` = '{$login}'"));
if($user_auth['limit_auth'] >= $glob_core['un_auth']) {
die( engine::error( Lang::__('Ваша учетная запись заблокирована на 5 минут!') ) );
}else {
$db->query("UPDATE `users` SET `limit_auth` = '".($user_aut['limit_auth']+1)."',`limit_time` = '".(time()+60*5)."' WHERE `id` = '".$user_auth['id']."'");
$db->query("INSERT INTO `log_auth` SET `id_user` = '".intval($user_auth['id'])."',
`ip` = INET_ATON('".$AboutGuest->ip."'),
`browser` = '".$AboutGuest->browser."',
`version_browser` = '".$AboutGuest->version."',
`oc` = '".$AboutGuest->operating_system."',
`version_oc` = '".$AboutGuest->os_version."',
`time` = '".time()."'");}
echo engine::error(Lang::__('Вход не произведён! Возможно, вы ввели неверный Логин или Пароль'));
echo engine::home(array(Lang::__('Назад'),'auth.php')); //Переадресация
exit();
}
}
}
}
//Форма авторизации
echo '<div class="mainname">'.Lang::__('Авторизация на сайте').'</div>';
echo '<div class="mainpost">';
$form = new form('?');
$form->text('<div class="row"><img src="/engine/template/icons/help.png">');
$form->text('Необходим аккаунт? <a style="color:green;" href="/modules/register.php">Зарегистрируйтесь сейчас!</a><hr/>');
$form->text('<img src="/engine/template/icons/password.png"> Забыли пароль к аккаунту? <a style="color:red;" href="/modules/lostpass.php">Восстановить его!</a><hr/></div>');
$form->input(Lang::__('Имя пользователя'),'nick','text',htmlspecialchars($login),(isset($error['nick']) ? '<span style="color:red"><small>' . implode('<br />', $error['nick']) . '</small></span><br />' : ''));
$form->text('<div style="font-size:12px;color: #a4a4a4;">Введите зарегестированный Логин</div>');
$form->input(Lang::__('Пароль'),'password','password',false,(isset($error['password']) ? '<span style="color:red"><small>' . implode('<br />', $error['password']) . '</small></span><br />' : ''));
$form->text('<div style="font-size:12px;color: #a4a4a4;">Введите пароль которую вы установили</div>');
$form->input2(false,'code','checkbox','1',false,Lang::__('Запомнить'));
$form->submit('Авторизоваться','submit');
$form->display();
echo '</div>';
?>