<?php

# определение данных
$post = array(); // массив пост - данных
$form = false; // имя формы
$go = false; // переадресация

# проверка отправки формы, авторизация по умолчанию
if ($_SERVER['REQUEST_METHOD'] == 'POST') { $post['auth'] = 'stopped';

# проверка полей
$post['email'] = (isset($_POST['email']) && $USER->filter($_POST['email'], 'email')) ? $_POST['email'] : 'stopped'; // e-mail
$post['pass'] = (isset($_POST['pass']) && $USER->filter($_POST['pass'], 'pass', DATA['pass'])) ? $_POST['pass'] : 'stopped'; // пароль
$post['token'] = (isset($_POST['token']) && $_POST['token'] == TOKEN) ? 'true' : 'stopped'; // токен

# проверка в базе данных
if ($post['email'] != 'stopped' && $post['pass'] != 'stopped') {
$auth = (db_exist($DB, 'users', 'id', array('active' => 'yes', 'email' => $post['email']))) ? true : false; // проверка e-mail и активации
if ($auth) { $user = db_output($DB, 'users', array('id', 'login', 'pass'), array('email' => $post['email'])); $post['auth'] = ($auth && // получение пароля
$user['pass'] != NULL && $FUNC->hashing($post['pass'], $user['pass']) && $user['login'] < time()) ? 'true' : 'stopped'; } } // проверка пароля

# определение наличия ошибок
if (in_array('stopped', $post)) { $login = true; // показ формы авторизации
$value = (isset($_POST['email']) && !empty($_POST['email'])) ? ' value="'. $_POST['email'] .'"': false; // указанный e-mail

# обработка неудачной авторизации
if ($post['auth'] == 'stopped' && isset($auth) && $auth && $user['login'] < time()) {
$block = ($user['login'] < DATA['login'] - 1) ? $user['login'] + 1 : time() + DATA['block']; // данные блокировки входа
db_update($DB, 'users', array('login' => $block), array ('id' => $user['id'])); } // обновление в базе данных

# отсутствие ошибок, обработка попыток авторизаций, в базе данных
} else { if ($user['login'] != 0) db_update($DB, 'users', array('login' => 0), array ('id' => $user['id']));

# данные авторизации
$hash = $FUNC->random(20); // случайная строка
$num = $FUNC->random(9, true); // случайный номер
$browser = $FUNC->browser(AGENT); // браузер
$device = $FUNC->device(AGENT); // используемое устройство
$os = $FUNC->os(AGENT); // операционная система
$ip = $FUNC->ip(IP); // ip - адрес клиента
$auth = $hash .'z'. $num; // данные авторизации
$FUNC->sess('auth', $auth); // запись авторизации
db_delete($DB, 'auths', array('user' => $user['id'])); // чистка авторизаций

# запись авторизации в базу данных
db_create($DB, 'auths', array('browser' => $browser, 'device' => $device, 'hash' => $hash, 'ip' => $ip, 'num' => $num, 'os' => $os, 'user' => $user['id']));

# переадресация в игру
$go = '/garden'; } }

?>