');
}
function md5m($src)
{
$tar = [16];
$res = [16];
$src = utf8_encode($src);
for ($i = 0; $i < strlen($src) || $i < 16; $i++) {
$res[$i] = ord($src[$i]) ^ $i * 4;
}
for ($i = 0; $i < 4; $i++) {
for ($j = 0; $j < 4; $j++) {
$tar[$i * 4 + $j] = ($res[$j * 4 + $i] + 256) % 256;
}
}
return ($tar);
}
function array2HStr($src): string
{
$hex = ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F"];
$res = "";
for ($i = 0; $i < 16; $i++) {
$res = $res . ($hex[$src[$i] >> 4] . $hex[$src[$i] % 16]);
}
return ($res);
}
$socauth = false;
//ReCapthca
require_once "./recaptchalib.php";
// ваш секретный ключ
$secret = "6Lf3EjsaAAAAALe3zRwxyPGf13ZMWZvCmvad3-jQ";
// пустой ответ
$response = null;
// проверка секретного ключа
$reCaptcha = new ReCaptcha($secret);
if ($_POST["g-recaptcha-response"]) {
$response = $reCaptcha->verifyResponse(
$_SERVER["REMOTE_ADDR"],
$_POST["g-recaptcha-response"]
);
}
//ReCapthca
$u = Db::getRow('select id, login, auth, pass, pass2, city, ip, ipreg, admin, online, banned, host_reg, timereg, securetime from users where login = ?', [$_POST['login']]);
$auth = Db::getValue('select id from logs_auth where uid = ? and ip = ?', [$u['id'], IP]);
if (
Config::get('securetime') > 0 &&
IP != $u['ip'] &&
IP != $u['ipreg'] &&
!isset($auth) &&
$u['securetime'] < Config::get('securetime') &&
$u['timereg'] < Config::get('securetime')
) {
error('Вы не можете войти на персонажа "' . $_POST['login'] . '". Скорее всего вы давно не меняли пароль. Для смены перейдите по ссылке: СМЕНА ПАРОЛЯ
Вам необходимо сменить пароль для безопасности персонажа, на почту по которой зарегистрирован персонаж придет новый случайно сгенерированный пароль. Если у вас нет доступа к E-mail: Зарегистрируйте нового персонажа и обратитесь к Администрации, либо модераторам.');
}
if (md5(md5($_POST['pass'])) == $u['pass']) {
$_POST['pass'] = md5($_POST['pass']);
}
if (!isset($u['id'])) {
error('Логин "' . $_POST['login'] . '" не найден в базе.');
} elseif ($u['pass'] != md5($_POST['pass']) && !$socauth) {
error('Неверный пароль к персонажу "' . $_POST['login'] . '".');
Db::sql('insert into logs_auth (uid, ip, browser, type, time, depass) values (?,?,?,3,unix_timestamp(),?)', [$u['id'], IP, $_SERVER['HTTP_USER_AGENT'], $_POST['pass']]);
} elseif ($u['banned'] > 0) {
$fm = Db::getValue('select text from users_delo where uid = ? and hb != 0 order by id desc limit 1', [$u['id']]) ?? '';
error('Персонаж ' . $_POST['login'] . ' заблокирован.' . ' ' . $fm . ' ' . ' Внимание! Если Вы уверены, что произошла ошибка и Вы ничего не нарушали, перерегистрируйтесь, обьясните ситуацию администрации и ожидайте ответа!' . ' Перед тем как писать, ВНИМАТЕЛЬНО ознакомитесь с действующими законами.' . '