Файл: core/modules/login.php
Строк: 60
<?php
if (!defined('CMS')) { die('Access Denied!'); }
if ($is_logged) {
$inSes->addMessage('Ошибка! Вы уже авторизованы', 'info');
redirect(gen_users($uset['uid'], 'start', '', RND));
}
if (!empty($_REQUEST['login'])) {
$row = array();
$_user = !empty($_REQUEST['login']) ? check($_REQUEST['login']) : '';
$_pswd = !empty($_REQUEST['pass']) ? check($_REQUEST['pass']) : '';
if (!empty($_user) && !empty($_pswd)) {
if (@count(explode('@', $_user)) != 2) {
$row = $db->selectRow("SELECT * FROM ?_users WHERE `users_login` = ? AND `users_pass` = MD5(MD5(?)) LIMIT 1;", $_user, $_pswd);
}
else {
$row = $db->selectRow("SELECT * FROM ?_users WHERE `users_email` = ? AND `users_pass` = MD5(MD5(?)) LIMIT 1;", $_user, $_pswd);
}
if (!empty($row) && is_array($row)) {
$_md5p = md5($_pswd); /* !!! Не изменять !!! */
$_uip = substr(str_replace('.', '', $_SERVER['REMOTE_ADDR']), 0, 5);
if (!empty($_POST['remember']) && $_POST['remember'] == 1) {
$inSes->setCookie('cooklog', $_user);
$inSes->setCookie('cookpar', $_md5p);
$inSes->setCookie('cookip', $_uip);
}
$inSes->setCookie('cookname', $row['users_login']);
$_SESSION[SP]['log'] = $_user;
$_SESSION[SP]['par'] = $_md5p;
$_SESSION[SP]['uip'] = $_uip;
$db->query("UPDATE ?_users SET `users_visits` = (`users_visits` + 1), `users_timelastlogin` = ?
WHERE `users_id` = ? LIMIT 1", SITE_TIME, $row['users_id']);
if (!empty($row['users_keypasswd']) || !empty($row['users_timepasswd'])) {
$db->query("UPDATE ?_users SET `users_keypasswd` = '', `users_timepasswd` = 0
WHERE `users_id` = ? LIMIT 1", $row['users_id']);
}
del_vars('users_visit'); // Удаление кеша
if (!empty($config['allow_save_logs'])) { // Запись авторизаций
$db->query("INSERT INTO ?_users_login (`login_user`, `login_ip`, `login_brow`, `login_time`)
VALUES (?, ?, ?, ?);", $_user, $ip, $brow, SITE_TIME);
$db->query("DELETE FROM ?_users_login WHERE `login_user` = ? AND `login_time` < (SELECT MIN(`login_time`) FROM (SELECT `login_time` FROM ?_users_login WHERE `login_user` = ? ORDER BY `login_time` DESC LIMIT 50) AS `del`);", $_user, $_user);
$_SESSION[SP]['show_login'] = 1;
}
$inSes->addMessage(WelCome($_user) . ' Вы успешно авторизованы!', 'ok');
redirect(gen_users($row['users_id'], 'start', '', RND));
}
else {
// Save Log
$inSes->addMessage('Ошибка! Неправильный логин или пароль!');
gen_red('login', '', RND);
}
}
else {
$inSes->addMessage('Ошибка! Неправильный логин или пароль!');
gen_red('login', '', RND);
}
}
show_header('Авторизация');
$cookname = !empty($_COOKIE[CP]['cookname']) ? check($_COOKIE[CP]['cookname']) : '';
$form = new cmsForm(gen_uri('/login', '', RND));
$form->addText('Логин:', 'login', $cookname);
$form->addPassword('Пароль:', 'pass', '');
if (!empty($config['allow_cookies'])) $form->addCheckBox(array('', ' Запомнить меня'), 'remember');
$form->addHidden('auth', 1);
echo $form->Submit('Войти');
unset($form);
echo '<div class="bl text">Вы можете сделать закладку для быстрого входа, она будет иметь вид:<br />';
echo $config['site_url'] . '/' . gen_uri('login') . '?login=ВАШ_ЛОГИН&pass=ВАШ_ПАРОЛЬ</div>';
echo '<div class="link"><a href="' . gen_uri('reg', '', RND) . '">Регистрация</a></div>';
echo '<div class="link"><a href="' . gen_uri('forgot', '', RND) . '">Забыли пароль?</a></div>';
?>