Файл: admin/modules/auth.php
Строк: 62
<?php
session_start ();          // стартуем сессию
$_SESSION['status'] = ''; // сбрасываем статус пользователя
// если в сессии есть логин и пароль, проверяем его в БД
if (isset ($_SESSION['login']) && isset ($_SESSION['pass']) && empty ($_GET['exit'])) {
    // чистим полученные данные и сверяем соответствие логина и пароля в базе
    $login = clear_input (htmlspecialchars ($_SESSION['login']));
    $pass  = clear_input (htmlspecialchars ($_SESSION['pass']));
    $auth  = mysql_query ("SELECT id, login, password, status FROM `" . DB_PREFIX . "_users` WHERE `login` = '" . $login . "' AND `password` = '" . $pass . "' LIMIT 1");
    // если логин-пароль есть в базе, активируем сессию для пользователя
    if (mysql_num_rows ($auth) > 0) {
        $userinfo = mysql_fetch_array ($auth);
        // если это админ или модератор, определяем переменные сессии
        if ($userinfo['status'] == '1' || $userinfo['status'] == '2') {
            $_SESSION['id']     = $userinfo['id'];
            $_SESSION['login']  = $userinfo['login'];
            $_SESSION['pass']   = $userinfo['password'];
            $_SESSION['status'] = $userinfo['status'];
        } else {
            $error  =  'Доступ запрещен!';
            log_write ('Доступ запрещен!', '0', '1');
            session_destroy();
        }
    } else {
        session_destroy();
    }
}
// если нажата кнопка из формы авторизации
if (isset ($_POST['auth'])) {
    // если заполнены не все поля
    if (empty ($_POST['login']) || empty ($_POST['pass'])) {
        $error  =  'Вы заполнили не все поля.';
        log_write ('Авторизация не удалась: заполнены не все поля', '0', '1');
        session_destroy();
    } else {
        // чистим полученные данные и сверяем соответствие логина и пароля в базе
        $login = clear_input (htmlspecialchars ($_POST['login']));
        $pass  = clear_input (htmlspecialchars ($_POST['pass']));
        $auth  = mysql_query ("SELECT id, login, password, status FROM `" . DB_PREFIX . "_users` WHERE `login` = '" . $login . "' AND `password` = '" . md5($pass) . "' LIMIT 1");
        // если логин-пароль есть в базе, активируем сессию для пользователя
        if (mysql_num_rows ($auth) > 0) {
            $userinfo = mysql_fetch_array ($auth);
            // если это админ или модератор, определяем переменные сессии
            if ($userinfo['status'] == '1' || $userinfo['status'] == '2') {
                $_SESSION['id']     = $userinfo['id'];
                $_SESSION['login']  = $userinfo['login'];
                $_SESSION['pass']   = $userinfo['password'];
                $_SESSION['status'] = $userinfo['status'];
                log_write ('Пользователь авторизовался', '1', '1');
            } else {
                $_SESSION ['id'] = $userinfo['id'];
                $error  =  'Доступ запрещен!';
                log_write ('Доступ запрещен!', '0', '1');
                session_destroy ();
            }
        } else {
            $error  =  'Такой пользователь не существует или пароль не верный.';
            log_write ('Авторизация не удалась', '0', '1');
            session_destroy ();
        }
    }
}
// если была нажата кнопка "выход"
if (isset ($_GET['exit'])) {
    log_write ('Пользователь отключился', '1', '1');
    session_destroy ();
    header ('Location: /admin/index.php'); 
}
// если статус пользователя не администратор или не модератор
if ($_SESSION['status'] != '1' && $_SESSION['status'] != '2') {
    include $_SERVER['DOCUMENT_ROOT'] . '/admin/inc/header.php';    
?>
<!-- форма авторизации -->
<div class="auth-form">
<?php if (isset ($error)) echo '<p class="error">' . $error . '</p>'; ?>
    <form method="post" action="/admin/index.php">
        <p><label>Логин:<input type="text" name="login"></label></p>
        <p><label>Пароль:<input type="password" name="pass"></label></p>
        <p><input type="submit" name="auth" value="Войти" class="button"></p>
    </form>
</div>
</body>
</html><?php
}
?>