Мини-чатик в один файл на PHP, HTML, CSS и JS

01.05.2014 18:24
101
Вобщем дело было так - собрался с праздновать свой ДР, народ мол "давай список подарков и все такое, а то подарим тебе надувную бабу по умолчанию" :)

Ну добили они меня - составил я список подарков, нужных мне, чтоб не пылились потом на полочке. И дальше встал вопрос - а как сделать, чтобы народ (много народа), не знающий или плохо знающий друг-друга, все это мог обсудить и скооперироваться?

Отправить всем емейлы? А если люди не хотят чтобы кто-то еще знал их емейл? Тоже и про телефоны. Экзотические вещи вроде гуглспредщитов и всякой другой онлайн-ахинеи мне были не сильно интересны - все-таки конфиденциальная информация :)

И вообще, программист я или где?

За час с небольшим был написан мини-чатик с пасьянсом и дурными феями, еще час на доделывания хотелок от народа и час на дебаг.

Вроде даже все получилось и даже понравилось. (Хотя время от времени раздавались вопли мол: "Ну че за херня - файл нельзя отправить, голосовое сообщение тоже, и вообще какого хрена без 3D?")

На следующий выходной день потратил часов 5 на приведение всего этого к красоте, а теперь хочу представить это дело Вам - вдруг кому сгодится, и времени тратить не надо будет.

Фишки:

  • Весь чат одним файлом на PHP + HTML + CSS + JS
  • Никакой БД, вся история хранится в HTML файлике, куда засовываются уже оформленные в HTML сообщения
  • Авторизации тоже не предусмотрено - все свои
  • Никаких WebSockets и long polling-ов - старый добрый хардкорный "А есть чо?"
  • Запоминание выбранного ника в куках
  • Вырезание всякого "ге" из текста и ника при постинге и ограничение их по длине
  • Обрезка подгружаемого куска чата
  • Отправка данных только в случае, если они были изменены (но отправляется весь кусок)
  • Отключаемый автоскролл
  • Отключаемый звук отправки/получения сообщения
  • Возможность задать время опроса, путь до файла с чатом, длину пересылаемого куска, оформление сообщений
  • Блокирование диалогов при загрузке и постинге, если скорость низкая
  • Подсказки в случае всяких фейлов
  • Кросс-браузерная работа - традиционно WebKit-ы (Chrome, Safari и др.), Firefox.
    IE браузером не считаю - это программа типа WGET для скачивания файлов (в том числе нормальных браузеров) просто с GUI - но и в нем должно работать, пусть и не так красиво
  • Без каких-либо jQuery и других фреймворков - только чистый JS, только хардкор
  • Все максимально просто, коротко, понятно и со вкусом
  • Огромное пространство для творчества и модификаций

Пользуйтесь на здоровье!

P.S. Иногда вот так покодить на чистом JS, вспомнить как сделать анимацию вручную, как работают стандартные селекторы и написанная с нуля обвязка XMLHttpRequest - это просто клево.

Вообще, чистый JS и когда ты сам себе в коде хозяин, а не лениво просишь "Эй, jQuery дай-ка мне тот DIV и отправь его содержимое по AJAX на воон тот URL!" - это приятно и полезно для мозгов :)

P.P.S. Не забудьте на хостинге правильно настроить кодировку и проверить наличие расширения mbstring у PHP - иначе будут проблемы с работой чата

Скачать chat.php, версия от 02.07.20 (utf8)

скачать

Скачать chatWin.php, версия от 10.04.18 (последнняя с win1251)

скачать
История версий:

02.07.20
  • добавлено опциональное авторастягивание ввода сообщения под размер введенного текста
06.02.20
  • закомментированы строчки с content-length заголовком, т.к. браузеры выкидывают на них исключение безопасности, спасибо Виктору за фидбэк
22.01.20
  • поправлена бага с экранированием переноса строк из-за чего вместо переносов писалось "<br />", спасибо Сергею за фидбэк
24.11.19
  • по многочисленным просьбам чат переделан в UTF-8
  • добавлен звук отправки и получения сообщения (отключаемо)
  • пофикшены мелкие баги
10.04.18
  • добавлена подсветка URL в сообщениях
  • исправлена ошибка с незапоминанием имени
  • изменен дизайн всплывающих подсказок
  • изменен цвет даты и IP
  • изменен дизайн ввода имени
  • пофикшены мелкие баги
08.05.14
  • первый публичный релиз

01.05.2014, Protocoder
Борис21.11.2014 22:52:55#ответить
Отличный Мини-чатик... ОГРОМНОЕ СПАСИБО!!!
Protocoder22.11.2014 22:52:05#ответить
Всегда пожалуйста :)
Илья25.04.2018 22:06:56#ответить
спс наконец-то закончил соц сеть)))))
пользователь18.07.2016 14:51:26#ответить
Спасибо!
Kent25.03.2018 19:34:34#ответить
Здравствуйте ! Чат отличный ! но не хочет отображать русский язык и постоянно пишет ошибка сервера !
Protocoder25.03.2018 19:49:29#ответить
Чат точно работает - проверено неоднократно.

Возможно проблемы, которые у Вас наблюдаются, связаны с тем, что чат рассчитан по кодировку CP1251 и сервер должен быть настроен на нее "по умолчанию".

Как вариант - если сервер Apache - добавьте в каталог с чатом файл .htaccess (или добавьте строчку к существующему .htaccess):
AddDefaultCharset windows-1251

Должно помочь.
Kent25.03.2018 20:38:34#ответить
В место "привет" отображает вот так "(п?иве?" с англ работает не проблема .
Я попробовал то , что вы мне описали , результатов не дало. Да , сервер Apache.
Protocoder26.03.2018 19:39:25#ответить
Проверьте в инструментах разработчика в браузере заголовки - если там все в порядке с content-type и его кодировкой - смотрите что с кодировкой на сервере (хостинге).
Может быть на сервере не встает 1251 локаль - что запросто может быть.
Посмотреть это элементарно - в самом начале PHP-файла с чатом идет установка локали - вот после нее и вывести текущую локаль - будет ли она 1251?

Отладкой вашего веб-сервера у меня, к сожалению, времени заниматься нет.
Но так как этот чат был проверен множество раз и на разных серверах - проблема точно у Вас, и я на 90% уверен, что дело в кодировке и заголовках.

Кстати, для Apache и .htaccess можно попробовать еще вот такой вариант:
CharsetDisable on
CharsetDefault windows-1251
CharsetSourceEnc windows-1251
AddDefaultCharset windows-1251
Влад08.04.2018 19:58:33#ответить
Добрый день.
Как очистить чат от ненужных записей?
Protocoder10.04.2018 00:59:14#ответить
Чат пишется в файл chat.db - это по сути обычный html-файл и там можно подправить все, что надо, открыв его обычным текстовым редактором.
Либо вообще удалить этот файл - тогда чат пересоздаст его и будет полностью чист.
Fendibober09.04.2018 13:40:52#ответить
Добавил функцию подсветки гиперссылок

function parse_links( $str ) {
$str = str_replace( 'www.', 'http://www.', $str );
$str = preg_replace( '|http://([a -zA-Z0-9-._()/]+)|', '<a href="http://$1">$1</a>', $str );
$str = preg_replace( '|https://([ a-zA-Z0-9-._()/]+)|', '<a href="https://$1">$1</a>' , $str );
$str = preg_replace( '/(([a-z0-9+ _-]+)(.[a-z0-9+_-]+)*@([a -z0-9-]+.)+[a-z]{2,6})/', '<a href="mailto:$1">$1</a>', $str );
return $str;
}

if ( $text ) $text = parse_links( $text );
Protocoder10.04.2018 21:55:52#ответить
В новой версии по многочисленным просьбам добавлена подсветка URL (емейлов - нет), правда по гораздо более простому алгоритму.
Владимир22.04.2018 17:40:26#ответить
Чатик отличный! Сайт у меня на utf-8, у чата кодировка win1251. В файле изменил все записи на utf-8 и сохранил в utf-8, но не тут-то было. В чем моя ошибка? Как перевести чат на utf-8?
Protocoder25.04.2018 14:18:21#ответить
Одной только конвертацией не обойтись.

Дело в том, что строковые функции в PHP отличаются для работы с UTF-8 или с WINDOWS-1251.

Поэтому для того, чтобы заработало в UTF-8 потребуется переписать весь PHP-код, работающий со строками.

Еще как вариант - оставить WINDOWS-1251 только для чата - создать отдельную папку для чата на хостинге и через .htaccess дать всему, что внутри кодировку WINDOWS-1251.
Владимир25.04.2018 22:28:49#ответить
Здравствуйте.

Создавал отдельную папку для чата на сайте, установил .htaccess (AddDefaultCharset windows-1251).
Все срабатывает, но... только после перезагрузки страницы чата и совсем нет заглавных букв.

Комбинация :

CharsetDisable on
CharsetDefault windows-1251
CharsetSourceEnc windows-1251
AddDefaultCharset windows-1251

Выдает ошибку 500.

Если создать папку с чатом на хостинге, - это будет, грубо говоря, еще один сайт чисто для чата.

Есть ли еще варианты?
Protocoder26.04.2018 01:52:37#ответить
Ошибка 500 выдается скорее всего из-за ограничений, который накладывает хостинг-провайдер на параметры в htaccess -это надо уточнять в тех. поддержке провайдера.

По-поводу отсутствия заглавных букв - значит не все правильно настроено на хостинге - что-то вмешивается в кодировку. Чат абсолютно рабочий и проверен ни один десяток раз.

Варианты есть - можете переписать все под UTF-8 - там ничего сложного нет, исходник открыт - заодно другие страждущие Вам спасибо скажут.
Владимир26.04.2018 10:01:45#ответить
Эх... Если бы мог...
Я и так в свои 60 с лишком (пенсионер, да и еще с недавних пор инвалид 1 группы) стал, как пацан - более менее понял html и css.

Подскажите откуда плясать, буду вникать.

Будьте здоровы.
Protocoder26.04.2018 23:07:27#ответить
Если не знакомы с базовыми знаниями по PHP - то плясать с него и базовых знаний - без этого Вы в коде не разберетесь вообще - однако это все уже выходит за рамки данной статьи.

Что до моего вмешательство в чат и UTF-8 - может быть когда-нибудь у меня руки до него и дойдут, но ничего обещать не могу.
Юрий18.08.2019 14:43:13#ответить
Закоментите эти три строчки
//if ( $name ) $name = cleanName( iconv( "windows-1251", "UTF-8//IGNORE", $name ) );
//else $name = $cookieName;

//if ( $text ) $text = cleanText( iconv( "windows-1251", "UTF-8//IGNORE", $text ) );

у себя так сделал и все ок.
Юрий10.11.2018 20:55:19#ответить
Здравствуйте

Чат работает прекрасно!

Я пытаюсь внутренний JS-скрипт вынести в наружный файл - не получается, отказывается работать на внешнем подключении.
Подскажите плиз - как сделать.

Всего хорошего вам
Protocoder14.11.2018 14:27:28#ответить
Здравствуйте!

Скрипт там заточен работать как inline - в этом весь смысл был, чтобы чат занимал четко один файл.

Но, если очень хочется, то конечно можно вынести его в отдельный файл, как и css.

Для этого надо перенести все содержимое тэга script на строке 708 в отдельный .js, и подключать его надо будет здесь-же, т.е. в 708 строке, ибо там инициализация происходит с условием, что все элементы страницы уже загружены.

Либо можно вместо анонимной функции которая вызывается после интерпретации всего JS в тэге сделать ее именованной, вынести в скрипт, который подключать в head, но не вызывать ее сразу, а только после загрузки всего документа.
Юрий14.11.2018 18:54:48#ответить
Спасибо большое - я покопаюсь.
Я SEO-шник, у нас привычка выносить весь служебный код наружу. Даже в сжатом виде JS занимает около 9 Кб
Одно плохо - я не силен в JS!
Еще раз большое спасибо - покопаюсь еще раз - я его и подключал в этом месте (вернее на своей странице вставил)
sogan29.11.2018 21:30:07#ответить
Отличный чатик, все работает, .htaccess только в папку добавил с кодировкой.
turboblacktorbacom30.11.2018 18:14:25#ответить
Хороший скрипт. люблю минимализм, и он хорошо смотрится на телефоне.
А есть какие-то варианты добавить туда простейшие бб-коды, что бы вставлять картинку, жирным, или подчеркнутым шрифтом? самые простые?
Protocoder06.12.2018 02:07:07#ответить
Варианты конечно есть - скрипт открыт - Вы можете его менять как душе угодно, в том числе - допиливать нужный функционал :)

А на данный момент, так как я тоже люблю минимализм, в нем ничего этого нет.
Anj21.03.2019 17:03:21#ответить
Да, отличный чатик вышел)) мне понравился
Константин04.04.2019 23:00:59#ответить
Чат хороший!
Антон08.04.2019 21:01:28#ответить
Чат перевели на UTF-8?
Protocoder09.04.2019 01:29:19#ответить
Нет, даже в планах не было - меня вполне WIN-1251 устраивает.

Исходник открыт - можете сами сделать все, что хотите - в том числе и UTF-8.
Антон12.04.2019 22:37:21#ответить
Чат улучшил, добавил немного функционал (поправил стили).

Есть вопрос один. Ответьте по возможности.

После формы стоят блоки <div class="ad"></div>, <div class="ct"></div>, <div class="cb"></div>

Зачем они были нужны?

Это боковые тени?
Protocoder13.04.2019 14:28:27#ответить
Да, эти блоки нужны для создания теней у блока с контентом.
Можете удалить их в веб-инструментах в браузере - увидите что будет.
Антон29.04.2019 22:46:23#ответить
Все сделал в лучшем виде, чат безупречен.

Сейчас встал вопрос конфиденциальности. Пожалуйста подскажите как сделать чтобы в чате не отображались IP адрес. в Стилях поставить none не вариант.
Protocoder02.05.2019 16:41:57#ответить
Убрать вывод IP очень просто - найдите в файле такой текст:

<span class="id">(' . $id . ')

и удалите его.
Николай02.05.2019 17:59:35#ответить
Спасибо)
Антон03.05.2019 15:42:10#ответить
Огромное спасибо! Отличный чат!

А над чем вы еще работаете в данное время?
Protocoder08.05.2019 02:36:18#ответить
Все, над чем работа. еще в свободное время рано или поздно появится здесь ":)
Николай02.05.2019 04:46:51#ответить
Приветы) спасибо за чат, но хотелось бы взглянуть на него вработе. Может кто из комментаторов скинет ссылку, по которой можно будет посмотреть и попользоваться?

Залил на сервер (TimeWeb): создал директорию, залил туда php, который скачал отсюда, скопировал и открыл существующий .htaccess, написал строку <AddDefaultCharset windows-125>, а при попытке открыть через браузер получил "Internal Server Error"
Что я делаю не так?

Короче исправил путем исправления header("Content-Type: text/html; charset=cp1251");

Осталось подогнать под себя (размеры, стили и т.п.) и вписать в iframe своих сайтов)
спасибо)))

Не хватает поддержки смайлов (emoji), что не очень критично, и очень не хватает распознование телефонных номеров.
Protocoder02.05.2019 16:40:09#ответить
Так, по порядку:

в .htaccess должна быть строчка:

AddDefaultCharset windows-1251

У Вас она написана неверно.
Использовать header для указания кодировки в данном случае - это костыль и так делать не надо.

Во-вторых: Emoji, распознавание телефонов и т.д. доделать элементарно - в чате есть парсинг ссылок - вот по аналогии с ним и сделать. Код открыт - меняйте под себя как нравится.
Алексей06.05.2019 16:48:04#ответить
Здравствуйте, отличный чат, на его основе делаю собственный мессенджер на Андроид, но есть одна проблема.

Дело в том, что код не выводит заглавную (первую букву), то есть, я пишу в сообщении " Привет" и нажимаю отправить, а вместо привет в окне диалога высвечивается "ривет", когда пытаюсь что-то написать на английском, на пример "Hello", то и диалоге выводится полное слово "Hello", то есть, не выводится только заглавная русская буква. Тоже самое и с ником, очень прошу подсказать решение, перебрал варианты но так ничего и не помогло((((
Николай07.05.2019 07:15:54#ответить
Приветствую. Не знаю что у вас не так. У меня изначально все работает https://xn--80aac3b7a.xn- -p1ai/chatnew/
Protocoder08.05.2019 02:33:15#ответить
Глюк у меня не воспроизводится, да и не возможен он, т.к. обработка букв стандартна для всех языков.

Так что либо неверно настроена кодировка в PHP, либо на сервере, либо на клиенте (если андроид), либо то и другое вместе.
Аня26.08.2019 17:58:09#ответить
А у вас нет случайно видео инструкции))
Protocoder01.09.2019 18:42:56#ответить
Вот чего уж нет, того нет :D
Даниил02.09.2019 19:36:38#ответить
Здравствуйте! У меня не отображаются русские буквы в Google Chrome, только значки вопроса. .htaccess добавил. Работает только в IE, если вручную переключить кодировку. Можно ли решить эту проблему?

Проблема решена. Использовал header, как другой комментатор.
Евгений22.10.2019 21:39:40#ответить
перевести на utf-8 легко - в функции cleanName закомментарьте $str = preg_replace( "~[^ 0-9a-zа-яё]~i", "", $str ); и в cleanText - тоже - такой блок - там идет вызов не utf функции
Protocoder23.10.2019 14:49:29#ответить
Чтобы они стали UTF-8, нужно просто вместо "~i" поставить "~iu" и все.
кис22.10.2019 23:33:05#ответить
А как его на сайт-то вставить?
Protocoder23.10.2019 14:50:48#ответить
Положить в любой каталог на сайте файл чата (можно даже в корень) и проверить его доступность.

Например, если положили в корень своего сайта, то попробовать открыть URL вида вашсайт/chat.php, или, если в папку - то вашсайт/папка/chat.php.

Если открываться не будет - значит либо надо доступ до него прописать, либо изменить rewrite-правила в зависимости от того, какой веб-сервер используется.
Юрий24.10.2019 23:02:40#ответить
Удаляйте эти строки и ставьте кодировку utf8, всё будет работать:

setlocale( LC_ALL, 'ru_RU.CP1251', 'rus_RUS.CP1251', 'Russian_Russia.1251' ); //Устанавливаем кодировку WIN-1251

if ( $text ) $text = cleanText( iconv( "utf-8", "windows-1251//IGNORE", $text ) );

и изменить

if ( $name ) $name = cleanName( iconv( "utf-8", "windows-1251//IGNORE", $name ) );
else $name = $cookieName;

на

if ( !$name ) $name = $cookieName;
Eno24.10.2019 23:49:37#ответить
Как можно добавить в чат звуковое оповещение о новом сообщении?
Protocoder25.10.2019 14:23:32#ответить
Найти строчки:

if ( txt !== undefined ) {
msgs.innerHTML = txt;
if ( as.checked ) scrollBottom();
сюда вставить проигрывание звукового сигнала
}
Eno25.10.2019 19:04:28#ответить
После любого вставленного кода в этом месте сообщения перестают отправляться в чат. Нужный мп3 файл находится в той же папке, что и сам чат.
Protocoder25.10.2019 19:12:15#ответить
Значит у Вас ошибка в коде появилась - чудес не бывает, откройте консоль и посмотрите в чем там дело.

Вставлять надо нечто такое:
( new Audio( "./sound.mp3" ) ).play();
Eno25.10.2019 20:28:35#ответить
Спасибо, вашим способом все заработало.
MrMario22.11.2019 09:53:08#ответить
Всё супер, работает на УРА!
У кого вместо Русского символы, создавайте .htaccess и добавляйте туда PHP_VALUE default_charset windows-1251

P.S. ждём обновлений :)
Protocoder24.11.2019 15:55:43#ответить
Ну вот как раз и вышло обновление:
- теперь чат в UTF-8 - надеюсь, теперь с русским меньше проблем будет
- добавлено отключаемое проигрывание звука при отправке/получении сообщения
Никита13.01.2020 23:44:20#ответить
Поставил чат на сервер, когда отправляю сообщение оно не появляется в чат боксе, ошибка в консоле "Refused to set unsafe header ''Content-Length'"
Protocoder14.01.2020 21:03:06#ответить
Попробуйте убрать или закомментировать строчки 767 и 771 в файле чата.
Виктор06.02.2020 01:33:15#ответить
Помогло, спасибо!
Сергей21.01.2020 15:33:56#ответить
Все хорошо встало, работает отлично, но проблема. В тексте чата не отрабатывается тег переноса строки <br />. В тексте выглядит так: текст<br />текст Как это исправить?
Protocoder22.01.2020 14:35:36#ответить
Бага с экранированием новой строки, поправил.
Рома28.01.2020 22:54:21#ответить
Круто! Долго искал где взять такой вот чат и нашёл болшое спасибо !
Евгений30.01.2020 20:52:04#ответить
Чат просто супер, спасибо, подскажите пожалуйста как инклудить его в страницу сайта? Хотелось бы что бы он открывался не на отдельной закладке браузера, а именно был встроен в сам сайт.
Protocoder31.01.2020 11:55:07#ответить
Чтобы его использовать внутри любой страницы:

-все, что на PHP - вставить в начало нужной Вам страницы до какого-либо не-PHP кода

-стили из head - вставить либо в стили, либо в css этой страницы

-все, что в body - вставить в нужное место этой страницы

Чат написан на XHTML - соответственно, при копировании надо это учитывать, и убирать или оставлять экранирование CDATA.

Ну и подкорректировать стили так, чтобы нормально смотрелось внутри нового дизайна.

Вобщем, стандартные навыки PHP/CSS/HTML, никаких особенностей у данного чата нет.

Ну, либо есть вариант проще - использовать FRAME/IFRAME, но там также надо будет корректировать стили.
Дартаньян26.02.2020 08:48:52#ответить
Просто лайк, от души
Вадим24.03.2020 21:43:40#ответить
Не пишет текст после отправки. как быть?
Protocoder24.03.2020 21:58:25#ответить
Не пишет в чем?
Какой браузер, версия?
Что на сервере?

И самое главное - файл с чатом создался на сервере?
Нет - значит дело в этом. Проблемы с правами на запись.
Если да - что в нем?
Даниил27.03.2020 16:53:28#ответить
Какое- то время работает, а потом выводит вот это: NONMODIFIED:1585309638?
Protocoder27.03.2020 20:18:01#ответить
Скорее всего включено кэширование на хостинге или что-то подобное.
Кирилл30.03.2020 18:41:29#ответить
Отличный чат, большое спасибо) Удачи!
Олегъ11.04.2020 16:19:49#ответить
Отлично. СПС!)))
Станислав15.04.2020 21:10:51#ответить
Здравствуйте, Protocoder!

СпасиБо, за Ваш труд!

Проверил работу с помощью Open Server:
1. Создал каталог CHAT\
2. вложил файл чата в каталог
3. вызвал открытие Каталога -
открылся чат с ошибкой в верхних строках.
4. ввел произвольно текст и отправил сообщение
5. все ошибки исчезли и чат заработал
(как удалось заметить в каталоге чата создался еще один файл: chat.db)

Может быть предложить почитателям Вашего Чата скинуться для небольшого вознаграждения Вашего труда, чтобы был стимул его модернизации?

Ничего в этом крамольного нет, ибо это уже давно приветствуется среди разработчиков.

Есть, все-таки, пожелание дополнить чат в режиме онлайн очищать файл базы при желании. ВЫ писали, что Вас зажигает новизна предложений, а некоторые этим только и живут)))

Есть предложение эти пожелания выстроить сверху-вниз от самых новых и ниже, иначе много строк приходится пролистывать вниз.

Можно ли Вам предложить еще немного своих пожеланий?

С уважением!
Protocoder16.04.2020 13:22:46#ответить
Мои потребности чат полностью закрывает.

Он их закрывал и до последней модификации, но уж больно все просили юникод - он реально стал стандартом де-факто - только по-этому и сделал.

На данный-же момент чат минималистичен и прост - это как раз то, зачем он и был создан.
Захламлять базовую версию чем-то еще совершенно не вижу смысла, что платно, что бесплатно.

Чат с открытым и очень простым исходным кодом - чистый, ванильный JS / CSS / HTML / PHP - никаких специальных билиотек.

Модифицируйте и осуществляйте свои хотелки сами и выкладывайте в сеть - это будет и быстрее и дешевле и полезнее как для общества, так и для ваших скиллов.

С уважением.
Станислав16.04.2020 21:34:57#ответить
Я не хотел вызвать у вас раздражения и, если это произошло, прошу прощения.
Очень сожалею, что пожелания были отождествлены с хотелками. Еще раз простите!
К сожалению, я из той поры, о которой Вы упомянули в пункте меню "О себе" и прекрасно помню
и "Радио РК-86" и "ZX-Scpectrum"....., но не удалось стать программистом, поэтому не обессудьте!
Не хочется засорять Ваш чат и убедительно прошу убрать все мои сообщения, чтобы не раздражать
посетителей этого сайта.
Мира Вам и Удачи!
Protocoder17.04.2020 14:20:05#ответить
Странно, я вроде-бы максимально нейтрально ответил.

Вы не вызвали никакого раздражения вообще.

Просто я ответил четко что к чему, чтобы не было больше вопросов.

Если Вы сами - не программист, но хотите получить какие-то реализации хотелок и хотите потратить немного денег - Вы всегда можете разместить заказ на фрилансе, дав, как основу, данный чат.

И все проблемы будут решены.
Ярослав17.04.2020 03:00:24#ответить
Здравствуйте, чат отличный, не могу не согласиться, но хотелось бы возможность прикреплять видео, аудио, картинки, гифки к сообщению. И я не много не понимаю, как сменить звук нового сообщения на отдельный файл?
Protocoder17.04.2020 14:23:14#ответить
Здравствуйте.

Прикреплять видео, аудио и т.д. этот чат не умеет и не будет уметь - он предназначен исключительно для обмена текстовой информацией.

Звук можно сменить, изменив строку 737: snd = new Audio( "поставив сюда закодированный в data-url нужный звук в формате mp3" );
Ученик19.04.2020 23:04:19#ответить
При проверки видимости чата на мобильном устройстве были отмечены некоторые тонкости:
1. В метатеге viewport должно быть значение device-width
2. Интерактивные элементы расположены слишком близко
3. Слишком мелкий шрифт

Что можно сказать по этому поводу?
Protocoder20.04.2020 23:26:36#ответить
По этому поводу могу сказать, что чат никогда не предназначался и не оптимизировался под мобильные платформы.

Хотите делать форк - делайте.
Там все можно CSS-ом разнести через media-query, не лезя в сам HTML.
Ну разве что мету только добавить - придется править HTML.
Ученик21.04.2020 11:15:36#ответить
А как Вы удаляете прочитанное содержание чата, которое уже не актуально?

Только через FTP?
Protocoder22.04.2020 14:46:30#ответить
Сделать можно как душе угодно.

Если вы про сам файл с общением - у меня стоит задача в кроне, которая этот файлик урезает до максимального размера. Но обычно все историю хранят. Скорость от этого не страдает, т.к. файл открывается и отдается только частью (если настроена CHATTRIM). Растет файл медленно - там ведь только HTML, а место под файлы сейчас недорогое - так что в большинстве случаев нет смысла с этим файлом вообще возиться.

Если Вы про пересылаемый кусок данного файла - то, что приходит в бразуер - размер этого куска задается переменной CHATTRIM - укажете в ней 0 (по-умолчанию) - будет пересылаться весь файл, укажите число - будет пересылаться не больше чем указанное число байт.
Ученик23.04.2020 14:59:37#ответить
А этот скрипт вопрос - ответ, Ваша личная разработка?
Тоже достаточно удобно работать.
Protocoder23.04.2020 22:51:07#ответить
Какой скрипт? Комментарии Вы так величаете что-ли? :)
Да, тоже моя, как и весь дизайн вместе с движком.

Но тут тема про чат - хотите уточнить что-то еще - пишите на мыло.
Олегъ30.04.2020 13:34:18#ответить
Здравствуйте!
А как убрать авто копирование всего текста написанного и отправленного сообщения мышкой в нижнее поле ввода? Чтоб копировало только имя или вообще не копировало бы! СПС за отличный мини чатик!).
Protocoder30.04.2020 21:48:37#ответить
Этим занимается обработчик msg.onclick в строках с 1212 - 1238, если ее удалить или закомментировать, то при клике на сообщение ничего не будет происходить.

Ну а если хочется только имя, то всю строку 1236 нужно заменить на: text.value += ">" + name;
Олегъ01.05.2020 17:05:48#ответить
Благо Дарю Вас! ))
Владимир19.05.2020 12:46:49#ответить
Спасибо
рус20.05.2020 17:23:18#ответить
подскажите как сделать чтобы чат выглядел по высоте и ширине примерно как тут? где эти значения менять нужно?
Protocoder20.05.2020 22:17:43#ответить
Тут - это где?

Все ширины и высоты настраиваются в CSS-стилях основного файла в тэге <style>.

P.S. Понял, что имели ввиду - это настраивается как раз теми самыми CSS-стилями. Но объяснять как это работает и как это сделать - не смогу - нет ни времени, ни желания.
Можете обратиться к любому WEB-верстальщику и он Вам сделает.
юрий05.06.2020 01:58:43#ответить
Спасибо, чат супер, пишу маленькие скрипты.
Ученик01.07.2020 16:18:47#ответить
Здравствуйте!
Если случайно выпадет свободное время, пожалуйста, напишите, что надо изменить в скрипте,
чтобы можно было сделать поле ввода текста сообщения "резиновым". За это многие будут благодарны. надеюсь.
Спасибо!
Protocoder02.07.2020 14:31:55#ответить
Не знаю надо ли оно всем, но мне оно давно нужно было - потому и реализовал сам.
Ученик03.07.2020 01:42:45#ответить
Благодарю за невероятную оперативность!
Что касается ВСЕМ......- время покажет, лично я благодарен вдвойне!

Хотелось бы еще узнать Ваше мнение о способе изменения размера окна по вертикали (того же растягивания) с помощью мыши и правого нижнего края самого окна?
Protocoder03.07.2020 13:47:51#ответить
Растягивание окна - это уже сами. Тем более делается это очень просто.
Roma27.07.2020 12:31:23#ответить
При отправке сообщения, когда верхнее окно уже заполнено до низу, происходит прокрутка, шрифт у всех сообщений становится немного больше и галочка "прокручивать вниз" сама отключается.
И если не обновить страницу, то последующие сообщения уже не прокручивается.
Если же страницу обновить галочка появляется, но снова после отправки сообщения отключается.
Таким образом повторная прокрутка происходит только после обновления страницы.
Это так и должно быть, или это ошибка ?
Roma27.07.2020 13:35:18#ответить
Найдена причина отключения прокрутки -
не все браузеры на мобильном правильно работают с чатом.
Protocoder28.07.2020 09:40:28#ответить
Данный чат вообще для мобильных задуман не был - собственно по-этому он и не оптимизирован под них.

Однако, работал и в FF и в Chrome, если поставить галку совместимости с PC. Остальные браузеры не проверял, т.к. эти два самые распространенные.
Дмитрий26.08.2020 13:16:23#ответить
Почему у меня header появляется в чате??
Protocoder26.08.2020 15:20:05#ответить
Штатные телепаты в отпуске.
Что за header? Как выглядит?

Чат работает у десятков пользователей нормально, значит дело, скорее всего, в вашем хостинге.
Кевин26.08.2020 14:32:59#ответить
Здравствуйте, а как внедрить в чат заливку файлов?
Protocoder26.08.2020 15:17:36#ответить
Здравствуйте.
Данный чат для этого не предназначен.
Написать комментарий