Анонимный класс для регистрации. Closes #20

This commit is contained in:
Igor Barkov (iwork)
2021-01-27 17:56:04 +02:00
parent a1c052f585
commit 4701e4b542
2 changed files with 33 additions and 23 deletions
+24 -17
View File
@@ -1,4 +1,7 @@
<?php
use Battles\Template;
session_start();
require_once "config.php";
if ($_COOKIE[GAMEDOMAIN] ?? null) {
@@ -15,25 +18,29 @@ if ($_COOKIE[GAMEDOMAIN] ?? null) {
$ip = filter_input(INPUT_SERVER, 'REMOTE_ADDR', FILTER_VALIDATE_IP);
if ($login && $password && $email && $birthday && $law && $law2) {
$check = db::c()->query('SELECT 1 FROM `users` WHERE `login` = "?s" OR `email` = "?s"', $login, $email)->getNumRows();
if ($check > 0) {
$error = "В системе уже есть такие данные!";
} else {
db::c()->query('INSERT INTO users (login,pass,email,borndate,ip,session_id)
VALUES ("?s", "?s", "?s", "?s", "?s", "?s")', $login, $password, $email, $birthday, $ip, session_id());
$nid = db::c()->getLastInsertId();
db::c()->query('INSERT INTO `online` (user_id, date, room, real_time) VALUES (?i, ?i, ?i, ?i)', $nid, time(), 1, time());
db::c()->query('INSERT INTO `bank` (`user_id`) VALUES (?i)', $nid, 5);
setcookie(GAMEDOMAIN, $nid, time() + 3600);
setcookie("battle", time());
$_SESSION['uid'] = $nid;
$_SESSION['sid'] = session_id();
header('Location: fight.php');
exit;
}
$newUser = new class {
public static function addUser(string $login, string $password, string $email, string $birthday): bool
{
if (db::c()->query('SELECT 1 FROM `users` WHERE `login` = "?s" OR `email` = "?s"', $login, $email)->getNumRows()) {
return false;
}
db::c()->query('INSERT INTO users (login,pass,email,borndate,ip,session_id,shadow)
VALUES ("?s", "?s", "?s", "?s", "?s", "?s", "?s")', $login, $password, $email, $birthday, $_SERVER['REMOTE_ADDR'], session_id(), '0.gif');
db::c()->query('INSERT INTO `online` (user_id, date, room, real_time) VALUES (?i, ?i, ?i, ?i)', db::c()->getLastInsertId(), time(), 1, time());
db::c()->query('INSERT INTO `bank` (user_id) VALUES (?i)', db::c()->getLastInsertId());
setcookie(GAMEDOMAIN, db::c()->getLastInsertId(), time() + 3600);
setcookie("battle", time());
$_SESSION['uid'] = db::c()->getLastInsertId();
$_SESSION['sid'] = session_id();
return true;
}
};
$newUser::addUser($login, $password, $email, $birthday);
header('Location: fight.php');
exit;
}
}
\Battles\Template::header('Регистрация персонажа');
Template::header('Регистрация персонажа');
?>
<a href="/"> ← на главную</a>
<?php if ($error ?? null): ?>