battles/register.php

66 lines
3.1 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
use Battles\Template, Battles\Database\Db;
require_once "config.php";
if ($_COOKIE[GAMEDOMAIN] ?? null) {
$error = "Не больше одной регистрации в час!";
} else {
$login = $_POST['login'] ?? null;
$password = isset($_POST['psw']) ? password_hash($_POST['psw'], PASSWORD_DEFAULT) : null;
$birthday = $_POST['birthday'] ?? null;
$email = filter_input(INPUT_POST, 'email', FILTER_VALIDATE_EMAIL);
$law = filter_input(INPUT_POST, 'law', FILTER_VALIDATE_BOOLEAN);
$law2 = filter_input(INPUT_POST, 'law2', FILTER_VALIDATE_BOOLEAN);
if ($login && $password && $email && $birthday && $law && $law2) {
$newUser = new class {
public static function addUser(string $login, string $password, string $email, string $birthday): bool
{
if (Db::getInstance()->ofetch('SELECT 1 FROM users WHERE login = ? OR email = ?', [$login, $email])) {
return false;
}
Db::getInstance()->execute('INSERT INTO users (login,pass,email,borndate,ip,session_id,shadow)
VALUES (?,?,?,?,?,?,?)', [$login, $password, $email, $birthday, $_SERVER['REMOTE_ADDR'], session_id(), '0.png']);
$userId = Db::getInstance()->lastInsertId();
Db::getInstance()->execute('INSERT INTO online (user_id, login_time, room, real_time) VALUES (?,?,1,?)', [$userId, time(), time()]);
Db::getInstance()->execute('INSERT INTO bank (user_id) VALUES ?', $userId);
setcookie(GAMEDOMAIN, $userId, time() + 3600);
setcookie("battle", time());
$_SESSION['uid'] = $userId;
$_SESSION['sid'] = session_id();
return true;
}
};
$newUser::addUser($login, $password, $email, $birthday);
header('Location: fight.php');
exit;
}
}
Template::header('Регистрация персонажа');
?>
<a href="/"> ← на главную</a>
<?php if (isset($error)): ?>
<h3><?= $error ?></h3>
<?php else: ?>
<h1>Регистрация</h1>
<form method="post">
<label>
<input required name="login" placeholder='Имя персонажа'> Имя персонажа.
</label><br>
<label>
<input required name="email" type=email placeholder='Электронная почта'> Электронная почта.
</label><br>
<label>
<input required name="psw" type=text placeholder='Пароль'> Пароль.
</label><br>
<label for="bday">Дата рождения:</label><br>
<input required id="bday" name="birthday" type='date' min=1970-01-01 max=2010-01-01><br>
<input required id="law" name="law" type=checkbox> <label for="law">Это мой единственный персонаж!</label><br>
<input required id="law2" name="law2" type=checkbox> <label for="law2">Я согласен на любые
условия, давайте играть!</label><br>
<input type=submit value=Зарегистрироваться>
</form>
<?php endif; ?>