show('private'); else $template->show('public'); // Anmeldung beim Chat if (is_post('join')) { if (CHAT_PRIVATE) { // Passwort Überprüfung if (!(isset($private_users[strtolower(post('username'))]) && $private_users[strtolower(post('username'))] == post('password'))) { $template->file('start.tpl'); $template->assign(array( '_error_message' => $lang['username.password.invalid'], '_username' => post('username'), )); $template->out(); exit; } } else { // Gültigkeitsprüfung Benutzername if (!preg_match('/^[0-9a-zA-Z]{3,10}$/', post('username'))) { $template->file('start.tpl'); $template->assign(array( '_error_message' => $lang['username.invalid'], '_username' => post('username'), )); $template->out(); exit; } } // Kontrollieren ob bereits im Chat foreach ($userlist as $user) if (strtolower($user->username) == strtolower(post('username'))) { if ($user->session_id == $session_id) $self = true; else $taken = true; break; } // Benutzername ist in Gebrauch if (isset($taken)) { $template->file('start.tpl'); $template->assign(array( '_error_message' => $lang['username.in.use'], '_username' => post('username'), )); $template->out(); exit; // Überrpfung ob Chat voll ist } else if (!isset($self) && count($userlist) + 1 > MAX_USERS) { $template->file('start.tpl'); $template->assign(array( '_error_message' => $lang['chat.full'], '_username' => post('username'), )); $template->out(); exit; // Anmelden falls nicht bereits im Chat } else if (!isset($self)) { $session_id = md5(uniqid(rand())); $cookie_path = '/'; $cookie_domain = ''; setcookie('session_id', $session_id, 0, $cookie_path, $cookie_domain, 0) or die('Error setting cookie'); setcookie('username', post('username'), time() + 86400 * 365, $cookie_path, $cookie_domain, 0) or die('Error setting cookie'); $user = new user(); $user->username = ucfirst(strtolower(post('username'))); $user->session_id = $session_id; $user->session_time = time(); $user->message_time = time(); $line = new line(); $line->timestamp = time(); $line->username = ''; $line->target = ''; $line->message = sprintf($lang['login.message'], $user->username); $user->line = add_line($line) - 1; update_userlist($user); } redirect('index.php'); // Debug Variablen ausgeben } else if (is_get('debug')) { print_r($userlist); $file = file(DATA_PATH.FILENAME_CHATLINES); $chatlines = unserialize($file[0]); print_r($chatlines); // AJAX Abfrage der Benutzerliste } else if (is_get('userlist')) { $users = array(); foreach ($userlist as $user) array_push($users, $user->username); sort($users); echo implode(',', $users); exit; // Benutzer wurde ausgeloggt } else if (is_get('loggedout')) { $template->file('start.tpl'); $template->assign(array( '_message' => $lang['you.got.logged.out'], '_username' => isset($_COOKIE['username']) ? $_COOKIE['username'] : '', )); // Benutzer hat den Chat verlassen } else if (is_get('logout')) { $template->file('start.tpl'); $template->assign(array( '_message' => $lang['you.logged.out'], '_username' => isset($_COOKIE['username']) ? $_COOKIE['username'] : '', )); $line = new line(); $line->timestamp = time(); $line->username = ''; $line->target = ''; $line->message = sprintf($lang['logout.message'], $userlist[$session_id]->username); add_line($line); drop_from_userlist($userlist[$session_id]); // Benutzer hat kein ActiveX } else if (is_get('nohttp')) { $template->file('start.tpl'); $template->assign(array( '_error_message' => $lang['you.need.activex'], '_username' => isset($_COOKIE['username']) ? $_COOKIE['username'] : '', )); // Falls Benutzer nicht im Chat eingeloggt } else if (!isset($userlist[$session_id])) { $template->file('start.tpl'); $template->assign(array( '_username' => isset($_COOKIE['username']) ? $_COOKIE['username'] : '', )); // Chat anzeigen falls nicht zu lange idle } else { if (time() - $userlist[$session_id]->session_time < MAX_IDLE_TIME && time() - $userlist[$session_id]->message_time < MAX_MESSAGE_TIME) { $template->file('chat.tpl'); foreach($smilies as $code => $img) $template->loop('smilies', array( 'code' => $code, 'img' => 'images/'.$img, ), array()); $template->assign(array( '_chat_height' => CHAT_HEIGHT - 125 + (USE_SMILIES ? 0 : 20), '_wait' => REFRESH_TIME * 1000 / 20, '_max_lines' => MAX_LINES, '_username' => $userlist[$session_id]->username, '_use_smilies' => USE_SMILIES ? 1 : 0, '_send_ressource' => substr($lang['send'], 0, 10), )); } else { drop_from_userlist($userlist[$session_id]); update_userlist(); } } $template->out(); exit; ?>