prepare("SELECT id FROM users WHERE usn = ?"); $stmt->execute([$usn]); if ($stmt->fetch()) { // For simplicity, we'll just log them in and send to the game. // A real app might show an error "USN already registered". $stmt = $pdo->prepare("SELECT id FROM users WHERE usn = ?"); $stmt->execute([$usn]); $user = $stmt->fetch(); $_SESSION['user_id'] = $user['id']; header('Location: level1.php'); // Redirect to level 1 exit(); } // 1. Create a new User (without referral link first) $sql = "INSERT INTO users (name, usn, mobile, referralCount, hasWonReward, rewardClaimed, gameLevel) VALUES (?, ?, ?, 0, 'no', 'no', 0)"; $stmt = $pdo->prepare($sql); $stmt->execute([$name, $usn, $mobile]); // 2. Get the new User's ID $userId = $pdo->lastInsertId(); // 3. Generate and update the referralLink // Note: This assumes the domain is http:// and uses the current host. // In a production app, this should be a configurable value. $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') ? "https" : "http"; $host = $_SERVER['HTTP_HOST'] ?? 'localhost'; $referralLink = $protocol . '://' . $host . '?ref=' . $userId; $updateSql = "UPDATE users SET referralLink = ? WHERE id = ?"; $updateStmt = $pdo->prepare($updateSql); $updateStmt->execute([$referralLink, $userId]); // 4. Log this user in by storing their ID in the session $_SESSION['user_id'] = $userId; // 5. Navigate to Level 1 (placeholder) // We will create level1.php in a future step. header('Location: level1.php'); exit(); } catch (PDOException $e) { // In a real app, log this error and show a generic error page. die("Database error: " . $e->getMessage()); }