| 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/arni-solutions.de/web/slot/ |
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);
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">
<title><?= e($config['app']['name']) ?> Registrierung</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet">
<link href="assets/style.css" rel="stylesheet">
</head>
<body class="auth-body">
<div class="container py-5">
<div class="row justify-content-center">
<div class="col-md-5">
<div class="card slot-card auth-card">
<div class="card-body p-4">
<h1 class="display-6 text-center mb-3">✨ Neuer Spieler</h1>
<p class="text-center text-secondary mb-4">Startkapital: <strong><?= (int)$config['app']['start_balance'] ?> <?= e($config['app']['currency']) ?></strong></p>
<?php if ($error): ?><div class="alert alert-danger"><?= e($error) ?></div><?php endif; ?>
<form method="post" class="vstack gap-3">
<div>
<label class="form-label">Nutzername</label>
<input type="text" name="username" class="form-control form-control-lg" required>
</div>
<div>
<label class="form-label">Passwort</label>
<input type="password" name="password" class="form-control form-control-lg" required>
</div>
<div>
<label class="form-label">Passwort wiederholen</label>
<input type="password" name="password_confirm" class="form-control form-control-lg" required>
</div>
<button class="btn btn-warning btn-lg w-100">Registrieren</button>
</form>
<div class="text-center mt-4">
<a href="login.php" class="link-light">Schon dabei? Zum Login</a>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>