..., 'name' => ...] } } return null; } function isUserRegistered($name) { return findUserByName($name) !== null; } function registerUser($name) { $users = getRegisteredUsers(); // پیدا کردن بیشترین ID برای تولید ID جدید $maxId = 0; foreach ($users as $user) { if ($user['id'] > $maxId) $maxId = $user['id']; } $newId = $maxId + 1; $users[] = ['id' => $newId, 'name' => $name]; saveRegisteredUsers($users); return $newId; } // ----- تابع تولید رنگ بر اساس ID (نه نام) ----- function getUserColorById($id) { $hash = md5((string)$id); $hue = hexdec(substr($hash, 0, 2)) % 360; return "hsl($hue, 75%, 60%)"; } // ----- دریافت پیام‌های جدید (با رنگ) ----- if (isset($_GET['get'])) { $last = isset($_GET['last']) ? (int)$_GET['last'] : 0; $data = file_get_contents($msgFile); $msgs = json_decode($data, true) ?: []; $new = []; foreach ($msgs as $m) { if ($m['time'] > $last) { // پیدا کردن کاربر بر اساس نام $user = findUserByName($m['user']); $color = $user ? getUserColorById($user['id']) : '#f7c948'; $m['color'] = $color; $new[] = $m; } } header('Content-Type: application/json'); echo json_encode($new); exit; } // ----- ارسال پیام جدید ----- if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['send'])) { if (!isset($_SESSION['username'])) exit; if (isset($_SESSION['last_send']) && time() - $_SESSION['last_send'] < 2) { http_response_code(429); exit; } $_SESSION['last_send'] = time(); $user = $_SESSION['username']; $text = trim($_POST['text']); if ($text === '') exit; $data = file_get_contents($msgFile); $msgs = json_decode($data, true) ?: []; $msgs[] = [ 'user' => $user, 'text' => htmlspecialchars($text), 'time' => time() ]; if (count($msgs) >= 200) { $msgs = array_slice($msgs, 100); } $fp = fopen($msgFile, 'w'); if (flock($fp, LOCK_EX)) { fwrite($fp, json_encode($msgs)); flock($fp, LOCK_UN); } fclose($fp); exit; } // ----- ورود خودکار با کوکی ----- if (!isset($_SESSION['username']) && isset($_COOKIE[$cookieName])) { $cachedName = $_COOKIE[$cookieName]; if (isUserRegistered($cachedName)) { $_SESSION['username'] = htmlspecialchars($cachedName); setcookie($cookieName, $cachedName, $cookieExpire, '/'); } } // ----- ورود کاربر جدید ----- if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['username'])) { $name = trim($_POST['username']); $error = ''; if ($name === '') { $error = 'لطفاً نام خود را وارد کنید.'; } elseif (isUserRegistered($name)) { $error = 'این نام قبلاً ثبت شده است. لطفاً نام دیگری انتخاب کنید.'; } else { registerUser($name); $_SESSION['username'] = htmlspecialchars($name); setcookie($cookieName, $name, $cookieExpire, '/'); header('Location: ' . $_SERVER['PHP_SELF']); exit; } $logged_in = false; $login_error = $error; } else { $logged_in = isset($_SESSION['username']); $login_error = ''; } $currentUser = $logged_in ? $_SESSION['username'] : ''; ?> چت‌روم

👋 به چت خوش آمدید

⚠️

نام شما فقط یک بار ثبت می‌شود و دفعات بعد به‌طور خودکار وارد می‌شوید

👤
This page was created by Litebase Page Builder and has no affiliation with other sites