Требует: php5, MySql5, .htaccess, Описание: Многофункциональный чат с логами на файлах. Пользователи храняться в БД. Чат может быть интегрирован в любую CMS работающею на БД (настройка полей в конфиге). Возможности: - Система карм/нарушений - Отдельный приват - Список пользователей Он-Лайн [a-z] - Вставка имени пользователя в строку привата - Выделение модеров в списке юзеров - Режим "только чтение" - Бан по логину - Два уровня модераторов: 1 уровень: -- Выдача предупреждений, +1 к нарушениям -- Удаление из чата, + 2 к нарушениям -- "Только чтение" на 15, 30, 60, 180, 360 минут -- оповещение (Любой текст от имени системы) 2 уровень: -- Чтение привата [-] -- Бан по Логиню/ИП на сутки, неделя, месяц, бессрочно [-] -- Изменение рейтинга вручную [-] - уровень - админ -- назначение на должности -- снятие с них - Отправка сообщений Ctrl+Enter - Защита от двойной отправки сообщения - Запрет доступа к чату если предупреждений больше либо они равны карме - Выделение "опасных" пользователей (карма-нарушения<=2) - Нельзя войти под одним ником с разных компьютеров - Защита логов от просмотра посторонними - Антифлуд система: обрезание больше 3 одинаковых символов подряд - Смайлики - Эмоции (типа "хорошее настроение", "с криком") - переход на домашнюю страницу пользователя (в структуре сайта) - Определение пола пользователя - Выделение моего ника если сообщение адресовано мне - Легкая настройка дизайна через CSS [-] и многое другое [-] - не доделано Примерно так Потестить тут: www.vowik.ru/chat/ test:test скачать исходники (257 кб.) Сделать еще надо немного мелких доработок, но в целом чат полностью функционален БД еще щас дам [sql] CREATE TABLE `phpbb_users` ( `user_id` mediumint(8) NOT NULL default '0', `username` varchar(25) NOT NULL default '', `user_password` varchar(32) NOT NULL default '', `user_chat_rank` int(1) NOT NULL default '0', `user_chat_karma` int(5) NOT NULL default '10', `user_chat_error` int(5) NOT NULL default '0', `user_chat_session` varchar(50) NOT NULL default '', `user_chat_ip` varchar(15) NOT NULL default '', `user_chat_ban_time` int(10) NOT NULL default '0', `user_chat_ban` int(1) NOT NULL default '0', `user_chat_read` int(10) NOT NULL default '0', `user_chat_online` int(1) NOT NULL default '0', `user_chat_gender` int(1) NOT NULL default '0', `user_chat_sound` int(1) NOT NULL default '0', `user_chat_user_chat_color` int(6) NOT NULL default '0', `user_chat_reload` int(2) NOT NULL default '5', PRIMARY KEY (`user_id`), KEY `user_session_time` (`user_session_time`) ) ENGINE=MyISAM DEFAULT CHARSET=cp1251; [/sql] Жду конструктивных предложений в формате: Большая просьба объяснять почему так нельзя или не желательно, это мой первый подобный проект, потому я хочу понять смысл ошибок, а не просто что бы пнули в мануал ничего не объяснив Заранее спасибо!
Есть небольшая бага с приватом и списком юзеров... приват: почему-то первое сообщение отправляется дважды Окно юзеров: В списке красным должны выделяться только те, у кого карма-нарушения <=2? а на деле выделяются все Не могу понять почему PS чат делал под себя, потому не спрашивайте зачем здесь это или то Вдруг кому пригодится )
Однако.... 1. ' зачем то заменяется на \' 2. <?php echo('hello world!'); ?> вообще не вставилось.... ну и т.д.
Nemo, представь себе что я сижу в твоем замечательном чате, и помогаю каким-нибудь блондинкам с моего курса сдать курсач по PHP ) а это цуко режет все теги и кавычки загадочно экранирует) Но в принципе для начала неплохо, респект. Если бы таки сделал без постоянных апдейтов страницы вообще было бы хорошо.... А так думаю достанешь ты в конце концов сервак когда его побольше народу будут юзать...
Ты на аякс намекаешь? )) Ну не умею я (( Хорошо, а как тогда сделать защиту? что бы всякую фигню на писали в чат.. htmlspecialchars(); ??? Работает такое.. правда не везде ) Открой файл function.php log_write (); может подскажешь как исправить
Хм... А если по простому в log_write() mysql_escape_string($text), а при выводе htmlspecialchars($text, ENT_QUOTES); Не прокатит? Защита от флуда = в определенное кол-во времени не более стольки то сообщений. Игнорить 2 одинаковых сообщения от одного и того же юзверя...
1) Чат на файлах )) 2) не все запросы длолжны быть обработаны ) 3) Выводится должно то, что храниться в файле_логе будь то html или акси
Объясните дураку, где я не прав? (( PHP: <? echo '<hr noshade color="#000080">'; $sql = "SELECT * FROM `$db_table_users` WHERE `user_chat_online`='1' ORDER BY `$db_table_users_name` ASC"; $sql = mysql_query($sql) or print("Не могу составить список пользователей в On-Line"); while($nextrow = @mysql_fetch_array($sql)) { $time_action = $nextrow['user_chat_action']; if (time() - $time_action > '900') { echo "Время: ".time(); echo "<br>в базе ".$time_action; $sql1 = ("UPDATE `$db_table_users` SET `user_chat_online` = '1' WHERE `$db_table_users`.`$db_table_users_id` = $nextrow[$db_table_users_id] LIMIT 1"); $sql1 = mysql_query($sql1) or die("Не могу убрать из On-Line"); } if ($nextrow['user_chat_karma'] - $nextrow['user_chat_error'] < 2) { $i3 = ' style="color:#CC0000;" '; } if ($nextrow['user_chat_rank'] == '1' || $nextrow['user_chat_rank'] == '2' || $nextrow['user_chat_rank'] == '3') { $i1 = '<i>'; $i2 = '</i>'; } echo '<table border="0" width="100%" cellspacing="0" cellpadding="0"> <tr> <td align="center"> <p align="left"><a href="http://vowik.ru/forum/profile.php?mode=viewprofile&u='.$nextrow[$db_table_users_id].'" target="_blank"><img src="http://vowik.ru/forum/templates/subSilver/images/icon_mini_home.gif" border="0"></a>'; if($nextrow['user_gender'] === '1') { echo ' <img src="data/male_m.gif" border="0">'; } elseif ($nextrow['user_gender'] === '2') { echo ' <img src="data/male_j.gif" border="0">'; } else { echo ' <img src="data/male_x.gif" border="0">'; } echo '</td> <td align="center">'.$i1.'<a target"messages" href="#" '.$i3.'onClick="parent.frames[\'messages\'].document.getElementById(\'privat\').value = this.innerHTML; return false;" '.$i3.'>'.$nextrow[$db_table_users_name].'</a>'.$i2.'</td> <td align="center">["'.$nextrow['user_chat_karma'].'"-"'.$nextrow['user_chat_error'].'"]</td> </tr> </table>'; } ?> Почему ифы не обрабатываются в цикле?(( мне надо КАЖДОГО проверять на соответствие условию.. а проверяется только первый Код (Text): echo "Время: ".time(); echo "<br>в базе ".$time_action; выводится только один раз, а должен, минимум, два
Обновил чатик!!! (ссылка таже) Посмотрите еще доку... может что исправить... CSS по прежнему не работает..