Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как создавать чаты? Система создания, алгоритмы и возможные ошибки?

7.4K
24 апреля 2007 года
Rine
85 / / 31.10.2006
Здраствуйте... Вот собираюсь писать свой первый чат...
Наверняка здесь есть много людей которые уже это делали...
Хочу спросить как реализовать его, то есть мне не нужены сами примеры...

Возник такой вопрос: Где хранятся все сообщения которые выводяться пользователю? В каком нибудь файле или сессии? Как лучше реализовать это?



И еще, абстрактный вопрос: Как можно добавить в функцию смайликов?

Заранее спасибо
239
24 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
В сети полно скриптов с чатами. Предлагаю Вам изучить парочку. После этого у Вас самого появится четкое представление как оно реально надо.

Сообщения имхо лучше хранить в базе. Потому что проще брать выборки, отображать статусы и так далее. Смайлики - простым регекспом заменять на теги <img ... />
92
24 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
точно, а когда чат сделаешь, напиши FAQ по этому делу и выкладывай сюда, чтобы народ больше таких вопросов не задавал... и не мучался с изучением скриптов чужих. :)
271
24 апреля 2007 года
MrXaK
721 / / 31.12.2002
первым делом надо решить вопрос безопасности юзеров... чтобы никто не мог писать за другого и т. п... желательно не хранить встроке адреса никакой информации про пользователей... история из жизни: был у нас один чат, там в строке адреса хранился тикет - рандомный набор из букв и цифр... у потом сломали этот чат очень просто - зарегали юзера, у которого в инфе был линк на один сайт... сайт просто в тупую складывал реферер в файл... тикет не чекался ничем, и банально заменив свой тикет на полученный, получали права того человека... так как одним из админов была блондинка, админский акк был у нас раз 6)))
дальше вопрос уже в создании самого чата...сложности нету никакой, реализация как обычного скрипта гостевой книги... сообщения в бд, добавляется если надо поля типа кому сообщение, приватное ли и т. п.... встаёт проблема обновления окна чата... смотреть на эту тему другие чаты очень не советую... когда писал свой, я накачал штук 10, но понятного ничего не было... для начала советую написать банальное окно, которое через meta refresh обновляется раз в пару секунд... в самом скрипте идёт или выборка новых сообщений с какого-то момента, или просто всех... затем поняв сам механизм, обновление можно реализовать по другому... например через iframe или просто скрытый фрейм, из которого уже брать новые сообщение... или используя ajax... или не очень хороший вариант - в главном окне чата бесконечный цикл, сообщения выдаются на экран с использованием буферизации вывода... работает, но нестабилен к обрывам связи...
353
25 апреля 2007 года
Nixus
840 / / 04.01.2007
Все верно, но если писать чат, то не с обновляющимся frame'ом или iframe'ом (хотя и их можно оставить для старых браузеров), а использовать dom, ajax и setTiemout.
7.4K
27 апреля 2007 года
Rine
85 / / 31.10.2006
Я уже з@еб@лся... Помогите пожалуйста, напишите код добавления смайликов... Целый вечер сидел и не смог...

Нужно чтобы при нажатии на смайл его код попадал в содержимое <textarea>Вот здесь он появляется его код(нр: $smile )</textarea>

Заранее спасибо...
92
27 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
давай без матов..... тем более что они здесь ну совсем не к месту

вот тебе пример, я думаю разберешься )

[html]
<script>

function addSmile(code) {
document.getElementById('textarea_id').value += code; // добавляем в textarea код смайла
}

</script>

<!--................ -->

<a href="java script:void(0);" onClick="addSmile(':confused:');"><img src="images/confused.gif"></a> // а вот ссылка с вызовом функции.... добавляет код :confused:

<textarea id="textarea_id"></textarea> // вот наша textarea

[/html]
7.4K
27 апреля 2007 года
Rine
85 / / 31.10.2006
Большое спасибо... Хорошо я больше не буду материться... Просто же совсем крыша поехала с этим смайлами... Короче разбирал 2 гостевые, а функцию вытащить так и не смог...

Респект вам...


Блин ну как раз то что надо было, вообще супер... Сколько еще я разбирал разные книжки, описание аргумента id в textarea нигде не было...
92
27 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
обращайся =) тут народу уйма ) глядишь того и подскажут :)
7.4K
27 апреля 2007 года
Rine
85 / / 31.10.2006
Хорошо, вот еще что, как можно сделать так чтобы <table> не расширялся от текста... Вот небольшой фрагмент кода...

[HTML]<table border='1'><tr><td width='400' height='10'></td></tr><tr><td><font size='2'>1111111111111111111111111111111111111111111111111111111111111111111111111</font></td></tr></table>


<table border='1'><tr><td width='400' height='10'></td></tr><tr><td><font size='2'>22222222222222222222222</font></td></tr></table>[/HTML]


Если его открыть в Браузере то видно, что там где только 2 атрибут width='400' работает нормально, а там где 1 он расширяеться вместе с текстом...

Нужно чтобы был переход на следущую строку, а не расширение таблицы... Хотя я могу написать алгоритм разделения, думаю просто наверняка есть другой способ, или какой-нмбудь(которого не знаю) атрибут у <table>...
239
27 апреля 2007 года
Dolonet
1.7K / / 20.05.2000
Вариантов решения этой проблемы несколько. Приведу некоторые:
1. Проверять RegExp-ом выводимую строку на нечто такое: /[\S]{90}/s. И менять на то же самое с переносом строки.
2. см. свой пост и каким образом выведен "Код HTML:"
92
27 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
я когда-то писал чат, когда только в PHP окунался :).... вид у него был как у консоли Linux'овой... (задумка была такая :rolleyes: )...

в общем все сообщения, что были без пробелов и длиннее 80 символов резались на части по 80 символов а каждым 81м символом был \n ну или как в HTML это <br/>... вот...

я лично так избавился от проблем с переносами :) а еще можно PHP (здесь было JS но чёт я не подумал... на серверсайд это будет сделать проще :) ) смотреть длину строки, и относительно размера шрифта, например 10px, резать (разделять <br/>'ами) строку на такие части, которые бы помещались в 400px. но тогда учитывай что у тебя есть cellpadding и cellspacing
7.4K
27 апреля 2007 года
Rine
85 / / 31.10.2006
Доехал ели как... В смысле ставить сколинг, для просмотра текста??? Тоже не плохо... Но не подходит, буду ставить первым способом...

А еще если не ошибаюсь, можно написать алгоритм проерки текста, и ставить в тексте переносы строки через например 20 символов...

Просто я думал, может можно обойтись простыи тегами...

Ну ладно спасибо...
92
27 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
еще есть такое свойство у таблички (в CSS), называется table-layout (может принимать значения fixed и auto). вот при значении Fixed табличка не расширяется )))) но текст рисуется поверх... то есть как бы уходит за пределы... щаз поэкспериментирую, скажу, если получится =)
253
27 апреля 2007 года
Proger_XP
1.5K / / 07.08.2004
Хехе... В пхп есть функция wordwrap(), которая делает именно то, что нужно ;)
А для JS дело предложил Dolonet, резать regexp'ом
7.4K
28 апреля 2007 года
Rine
85 / / 31.10.2006
Спасибо! :) Вроде ничего так функция, только если писать, то давайте будет описывать синтаксис полностью, и примерчик хорошо???

string wordwrap (string str [, int width [, string break [, int cut]]])
- разбивает текст на строки указанной длины

А вот и пример:

 
Код:
<?php
$ourstr = "111222233322222222rdgdfgвауекоено";
$ourstrwordwrap= wordwrap($ourstr,6,"<br>",1);
echo $ourstrwordwrap;
?>


[, int cut] - совсем не понял зачем нужен этот аргумент только...
14K
28 апреля 2007 года
Jargal
26 / / 10.10.2006
Могу выслать исходники своего чата rjchat.ru. Чат готов не полностью, много недостатков, но реализована лучшим образом система обновления списка пользователей, список всегда актуален... Есть поддержка смайлов, система игнора и т.д. Чат реализован на Ajaxe. Устанавливал его в своём университете, чат легко выдерживает 150 чел на Pentium II, хотя других недостатков много... устранять из и доводить чат до совершенства нет времяни... по крайней мере пока.
92
28 апреля 2007 года
Тень Пса
2.2K / / 19.10.2006
молоцом, только вот в FF и Opera что-то как-то корявенько. ну там в принципе написано, что не поддерживает "не IE"
271
29 апреля 2007 года
MrXaK
721 / / 31.12.2002
блин, не знал про wordwrap)) резал substrм в цикле)))
могу послать сорцы своего чата, он довольно маленький, но работает...
28K
30 апреля 2007 года
levis
4 / / 30.04.2007
давай выкладывай ща посмотрим,укажим на ашибки
7.4K
02 мая 2007 года
Rine
85 / / 31.10.2006
Давай выкладывай... Посмотреть можно...

А вообще кто-нибудь пожалуйста введите меня в dom, ajax и setTiemout... Просто не раз что-то не встречал...

Ну последние(setTiemout) думаю это функция пыхи... Может у кого примеры есть маленькие?
Заранее спасибо... :)
92
02 мая 2007 года
Тень Пса
2.2K / / 19.10.2006
не правильно думаешь :D

это функция JS.

http://www.codenet.ru/webmast/js/ajax/AJAX-Application.php - AJAX
http://www.w3schools.com/htmldom/dom_reference.asp - DOM

ЗЫ: google it!
7.4K
03 мая 2007 года
Rine
85 / / 31.10.2006
Да... Ну просто я Java как-то углубленно не изучал, просто самое нормальное что там можно разработать это Меню... А остальное, то вроде как на первый взгляд бесполезные, а на самом деле очень нужные возможности(функции)... Спасибо за ссылки


Извиняюсь, JavaScript... Просто, написал так нечайно...
240
03 мая 2007 года
aks
2.5K / / 14.07.2006
Цитата: Rine
Да... Ну просто я Java как-то углубленно не изучал


Никогда не путай Java и JavaScript!

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог