From a763e6e5b1b432ba6d2d04459825ffb7a5cfba34 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Wed, 18 Feb 2026 16:22:01 +0000 Subject: [PATCH] =?UTF-8?q?invite=20code=20pour=20cr=C3=A9er=20un=20compte?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auth/register.php | 53 +++++++++++++++++++++++++++++----------- data/3.participants.json | 2 +- db/config.php | 3 +++ requests.log | 3 +++ 4 files changed, 46 insertions(+), 15 deletions(-) diff --git a/auth/register.php b/auth/register.php index c0ba2b4..7435b37 100644 --- a/auth/register.php +++ b/auth/register.php @@ -6,23 +6,42 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $username = $_POST['username'] ?? ''; $email = $_POST['email'] ?? ''; $password = $_POST['password'] ?? ''; + $invite_code = $_POST['invite_code'] ?? ''; if ($username && $email && $password) { - $hash = password_hash($password, PASSWORD_DEFAULT); - try { - $stmt = db()->prepare("INSERT INTO users (username, display_name, email, password_hash) VALUES (?, ?, ?, ?)"); - $stmt->execute([$username, $username, $email, $hash]); - $userId = db()->lastInsertId(); - - // Add to default server - $stmt = db()->prepare("INSERT IGNORE INTO server_members (server_id, user_id) VALUES (1, ?)"); - $stmt->execute([$userId]); + $server_id = 1; // Default server + if (PRIVATE_REGISTRATION) { + if (empty($invite_code)) { + $error = "An invitation code is required."; + } else { + $stmt = db()->prepare("SELECT id FROM servers WHERE invite_code = ?"); + $stmt->execute([$invite_code]); + $server = $stmt->fetch(); + if (!$server) { + $error = "Invalid invitation code."; + } else { + $server_id = $server['id']; + } + } + } - $_SESSION['user_id'] = $userId; - header('Location: ../index.php'); - exit; - } catch (Exception $e) { - $error = "Registration failed: " . $e->getMessage(); + if (!$error) { + $hash = password_hash($password, PASSWORD_DEFAULT); + try { + $stmt = db()->prepare("INSERT INTO users (username, display_name, email, password_hash) VALUES (?, ?, ?, ?)"); + $stmt->execute([$username, $username, $email, $hash]); + $userId = db()->lastInsertId(); + + // Add to the appropriate server + $stmt = db()->prepare("INSERT IGNORE INTO server_members (server_id, user_id) VALUES (?, ?)"); + $stmt->execute([$server_id, $userId]); + + $_SESSION['user_id'] = $userId; + header('Location: ../index.php?server_id=' . $server_id); + exit; + } catch (Exception $e) { + $error = "Registration failed: " . $e->getMessage(); + } } } else { $error = "Please fill all fields."; @@ -67,6 +86,12 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { + +
+ + +
+