<?php
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"><ul class="list_data clearfix">';
$form = new form('?');
$form->text('<li class="clear clearfix">');
$form->text('<span class="row_title regstyle">'.Lang::__('Логин').':</span>');
$form->text('<span class="row_data">');
$form->input2(false,'nick','text',htmlspecialchars($login),'placeholder="Введите логин"');
if(isset($error['nick'])) {
$form->text('<p class="text-error small">'.implode('<br/>', $error['nick']).'</p>');
}
$form->text('</span></li>');
$form->text('<li class="clear clearfix">');
$form->text('<span class="row_title regstyle">'.Lang::__('Пароль').':</span>');
$form->text('<span class="row_data">');
$form->input2(false,'password','password',false,'placeholder="Введите пароль"');
if(isset($error['password'])) {
$form->text('<p class="text-error small">'.implode('<br/>', $error['password']).'</p>');
}
$form->text('</span></li>');
$form->text('<li class="clear clearfix">');
$form->text('<span class="row_title regstyle">'.Lang::__('Запомнить').':</span>');
$form->text('<span class="row_data">');
$form->input2(false,'code','checkbox','1');
$form->text('</span></li><div class="form-actions">');
$form->submit('Авторизация','submit',false,'btn btn-primary');
$form->text('<a class="btn btn-warning" href="/modules/lostpass.php">Восстановление</a>');
$form->display();
echo '</div></ul></div>';