| Server IP : 202.61.199.114 / Your IP : 216.73.217.139 Web Server : nginx/1.22.1 System : Linux de.arni-solutions.de 6.1.0-49-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.174-1 (2026-05-26) x86_64 User : web20 ( 1018) PHP Version : 8.4.23 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/clients/client2/web31/web/slots/ |
Upload File : |
<?php
require_once __DIR__ . '/includes/bootstrap.php';
$config = app_config();
$error = '';
if (current_user()) {
header('Location: index.php');
exit;
}
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$username = trim((string)($_POST['username'] ?? ''));
$password = (string)($_POST['password'] ?? '');
$password2 = (string)($_POST['password_confirm'] ?? '');
if (!preg_match('/^[a-zA-Z0-9_\-]{3,24}$/', $username)) {
$error = 'Der Nutzername muss 3 bis 24 Zeichen haben.';
} elseif (strlen($password) < 6) {
$error = 'Das Passwort muss mindestens 6 Zeichen haben.';
} elseif ($password !== $password2) {
$error = 'Die Passwörter stimmen nicht überein.';
} else {
$stmt = db()->prepare('SELECT id FROM users WHERE username = ? LIMIT 1');
$stmt->execute([$username]);
if ($stmt->fetch()) {
$error = 'Der Nutzername ist bereits vergeben.';
} else {
$hash = password_hash($password, PASSWORD_DEFAULT);
$stmt = db()->prepare('INSERT INTO users (username, password_hash, balance, free_spins, total_wagered, total_won, total_play_seconds, biggest_single_win, best_win_ratio, created_at, last_seen_at) VALUES (?, ?, ?, 0, 0, 0, 0, 0, 0, NOW(), NOW())');
$stmt->execute([$username, $hash, (int)$config['app']['start_balance']]);
$userId = (int)db()->lastInsertId();
$stmt = db()->prepare('SELECT * FROM users WHERE id = ?');
$stmt->execute([$userId]);
$user = $stmt->fetch();
login_user($user);
if (!empty($_POST['remember'])) {
remember_create($userId);
}
header('Location: index.php');
exit;
}
}
}
?>
<!doctype html>
<html lang="de">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title><?= e($config['app']['name']) ?> · Registrierung</title>
<meta name="theme-color" content="#0a0710">
<?php require __DIR__ . '/includes/pwa.php'; ?>
<link href="https://fonts.googleapis.com/css2?family=Cinzel:wght@600;800&family=Inter:wght@400;600;800&display=swap" rel="stylesheet">
<link href="css/core.css" rel="stylesheet">
</head>
<body class="rr-body rr-auth-body">
<div class="rr-auth">
<div class="rr-auth-card">
<div class="rr-auth-brand"><span class="rr-brand-mark">♛</span><h1>Neuer Spieler</h1><p>Startguthaben: <?= money_fmt((float)$config['app']['start_balance']) ?> <?= e($config['app']['currency']) ?></p></div>
<?php if ($error): ?><div class="rr-auth-error"><?= e($error) ?></div><?php endif; ?>
<form method="post" class="rr-auth-form">
<label>Nutzername<input type="text" name="username" required autofocus></label>
<label>Passwort<input type="password" name="password" required></label>
<label>Passwort wiederholen<input type="password" name="password_confirm" required></label>
<label class="rr-auth-remember"><input type="checkbox" name="remember" value="1" checked><span>Angemeldet bleiben</span></label>
<button class="rr-btn rr-btn-gold rr-btn-block">Registrieren</button>
</form>
<div class="rr-auth-links"><a href="login.php">Schon dabei? Zum Login</a></div>
</div>
</div>
</body>
</html>