Файл: 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
}
?>