| 1 | <?php
|
|---|
| 2 |
|
|---|
| 3 | error_reporting(2039);
|
|---|
| 4 | set_time_limit(600);
|
|---|
| 5 |
|
|---|
| 6 | require_once 'configs/config.php';
|
|---|
| 7 | require_once 'includes/db.php';
|
|---|
| 8 | require_once 'includes/smarty.php';
|
|---|
| 9 |
|
|---|
| 10 | // Таблица соответствия номеров переводов
|
|---|
| 11 | global $languages;
|
|---|
| 12 | $languages = array(
|
|---|
| 13 | 0 => 'enus',
|
|---|
| 14 | 1 => 'czcs',
|
|---|
| 15 | 8 => 'ruru',
|
|---|
| 16 |
|
|---|
| 17 | );
|
|---|
| 18 | function str_normalize($str)
|
|---|
| 19 | {
|
|---|
| 20 | return str_replace("'", "\'", $str);
|
|---|
| 21 | }
|
|---|
| 22 |
|
|---|
| 23 | // Функция разделения строки по точке, например
|
|---|
| 24 | // 15.12 -> {15,12}
|
|---|
| 25 | function point_delim(&$str, &$a, &$b)
|
|---|
| 26 | {
|
|---|
| 27 | @list($a, $b) = explode('.', $str, 2);
|
|---|
| 28 | return;
|
|---|
| 29 | }
|
|---|
| 30 |
|
|---|
| 31 | function CheckPwd($username, $shapass)
|
|---|
| 32 | {
|
|---|
| 33 | // Проверка пароля пользователя
|
|---|
| 34 | // -1: пользователя не существует
|
|---|
| 35 | // 0: пароли не совпадают
|
|---|
| 36 | // >0: id пользователя
|
|---|
| 37 | require_once 'includes/DbSimple/Generic.php';
|
|---|
| 38 | global $rDB;
|
|---|
| 39 | global $AoWoWconf;
|
|---|
| 40 | $user_row = $rDB->selectRow('SELECT id, sha_pass_hash, gmlevel FROM account WHERE username=? LIMIT 1', $username);
|
|---|
| 41 | if ($user_row)
|
|---|
| 42 | {
|
|---|
| 43 | if ($shapass==$user_row['sha_pass_hash'])
|
|---|
| 44 | {
|
|---|
| 45 | $user = array();
|
|---|
| 46 | $user['id'] = $user_row['id'];
|
|---|
| 47 | $user['name'] = $username;
|
|---|
| 48 | $user['roles'] = ($user_row['gmlevel']>0)? 2: 0;
|
|---|
| 49 | /*
|
|---|
| 50 | roles:
|
|---|
| 51 | 0 - Обычный пользователь (gmlevel=0)
|
|---|
| 52 | 1 - Tester
|
|---|
| 53 | 2 - Администратор (синий, -25:25, 5, ред+уд)
|
|---|
| 54 | 3 - (синий, -25:25, 5, ред+уд)
|
|---|
| 55 | 4 - Editor (белый, ------, 1, ------)
|
|---|
| 56 | 5 - (белый, ------, 1, ------)
|
|---|
| 57 | 6 - (синий, -25:25, 5, ред+уд)
|
|---|
| 58 | 7 - (синий, -25:25, 5, ред+уд)
|
|---|
| 59 | 8 - Модератор (белый, -5:5 , 5, ред+уд)
|
|---|
| 60 | 9 - (белый, -5:5 , 5, ред+уд)
|
|---|
| 61 | 10 - (синий, -25:25, 5, ред+уд)
|
|---|
| 62 | 11 - (синий, -25:25, 5, ред+уд)
|
|---|
| 63 | 12 - Editor, Moderator (белый, -5:5 , 5, ред+уд)
|
|---|
| 64 | 13 - (белый, -5:5 , 5, ред+уд)
|
|---|
| 65 | 14 - (синий, -25:25, 5, ред+уд)
|
|---|
| 66 | 15 - (синий, -25:25, 5, ред+уд)
|
|---|
| 67 | 16 - Бюрократ (белый, -15:15, 5, ред+уд)
|
|---|
| 68 | 17 - (белый, -15:15, 5, ред+уд)
|
|---|
| 69 | 18 - (синий, -25:25, 5, ред+уд)
|
|---|
| 70 | 19 - (синий, -25:25, 5, ред+уд)
|
|---|
| 71 | 20 - (белый, -15:15, 5, ред+уд)
|
|---|
| 72 | 21 - (белый, -15:15, 5, ред+уд)
|
|---|
| 73 | 22 - (синий, -25:25, 5, ред+уд)
|
|---|
| 74 | 23 - (синий, -25:25, 5, ред+уд)
|
|---|
| 75 | 24 - (белый, -15:15, 5, ред+уд)
|
|---|
| 76 | 25 - (белый, -15:15, 5, ред+уд)
|
|---|
| 77 | 26 - (синий, -25:25, 5, ред+уд)
|
|---|
| 78 |
|
|---|
| 79 | */
|
|---|
| 80 | $user['perms'] = 1;
|
|---|
| 81 | return $user;
|
|---|
| 82 | } else {
|
|---|
| 83 | return 0;
|
|---|
| 84 | }
|
|---|
| 85 | } else {
|
|---|
| 86 | // такого пользователя не существует
|
|---|
| 87 | return -1;
|
|---|
| 88 | }
|
|---|
| 89 | }
|
|---|
| 90 |
|
|---|
| 91 | function create_usersend_pass($user, $pass)
|
|---|
| 92 | {
|
|---|
| 93 | // Хеш-код в зависимости от имени аккаунта и пароля
|
|---|
| 94 | return sha1(strtoupper($user).':'.strtoupper($pass));
|
|---|
| 95 | }
|
|---|
| 96 |
|
|---|
| 97 | function del_user_cookie()
|
|---|
| 98 | {
|
|---|
| 99 | setcookie ('remember_me', '', time() - 3600);
|
|---|
| 100 | }
|
|---|
| 101 | ?>
|
|---|