Найти в Дзене

Пишем чат.

Итак, чат я начал писать относительно давно, чисто из интереса. Но с другой стороны иметь свой чат, где можно с кем-то поболтать вполне себе хорошая задумка. Основной файл index.php растянулся на 500 с хвостиком строк, не считая стилей. Сами стили почти 300 строк.
И ко всему этому несколько вспомогательных файлов, такие как
auth.php,
reg.php,
profile.php
sendMessage.php
upDateChat.php
robots.txt
и директория users // для зарегистрированных пользователей.
И потом при начале работы, автоматически создаётся папка на каждый\текущий месяц текущего года, для хранения логов.
То есть каждый день создаётся новый файл и вся переписка пишется в него.
// переход на новые сутки я еще не тестировал.
вот так выглядит начало index.php: Наперёд скажу что в целом чат работает.
у меня два зарегистрированных аккаунта, в разных браузерах, для тестирования я переписываюсь между ними.
Немного описания реализованного функционала:
При первом заходе появится модалка для регистрации, заполнив все необходим

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

Внешний вид чата
Внешний вид чата

Основной файл index.php растянулся на 500 с хвостиком строк, не считая стилей. Сами стили почти 300 строк.
И ко всему этому несколько вспомогательных файлов, такие как
auth.php,
reg.php,
profile.php
sendMessage.php
upDateChat.php
robots.txt
и директория users // для зарегистрированных пользователей.
И потом при начале работы, автоматически создаётся папка на каждый\текущий месяц текущего года, для хранения логов.
То есть каждый день создаётся новый файл и вся переписка пишется в него.
// переход на новые сутки я еще не тестировал.
вот так выглядит начало index.php:

chat/index.php
chat/index.php

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

Немного описания реализованного функционала:
При первом заходе появится модалка для регистрации, заполнив все необходимые поля, жмякаем зарегистрировать. Пароли прячутся через 3 сек. послу удаления фокуса.
если пароли не равны или важное поле не заполнено появится сообщение под кнопками.
Если всё нормально в куках прописывается user = login.
в папке users создаётся новый файл с именем login
модалка регистрации закроется.
Далее нужно войти в аккаунт. вводим тот же логин\пароль, если все норм - модалка закрывается, чат активируется, но не полностью...
активируются поле ввода сообщений, слева в зоне "Сейчас в чате", а точнее ниже появится логин, (тёмно-красный фон, белый текст,);
слово вход меняется на выход.
При клике - удаляются coockie и слово выход обратно поменяется на вход.
Если user один раз зарегистрировался, то минимальные данные остаются в его папке и в записях cookie, поэтому при следующем заходе, в любом случае появится модалка для входа. При этом поле ввода будет не активно, пока не скрипт не получит login == true
В чате обмен \ обновление происходит методом поиска и сравнения по времени новых сообщений, за это отвечает функция upDataChat() в JS и вышеупомянутый файл upDateChat.php запросы к которому отправляет JS каждые несколько секунд. Вообще можно установить хоть 1000 раз в сек, но в этом нет смысла. у меня пока установлено
setTimeout(currentTime, 3000);
Так вот, вся эта система обновления запускается только после первой отправки сообщения. Так задумано.
После этого, если есть новые записи в файле текущего чата\дня они будут найдены и переданы в виде ответа на Ajax() запрос.
и соотв. содержание динамически помещается в чат.
Запись сообщений очень простая\минимальная. Для функционирования нужно время, login и текст сообщения. Именно так у меня и происходит.
Логин пишется жирным тёмно-красным цветом, время чч:мм:сс пишется серым шрифтом font-size:80%;
Также при получении сообщений от собеседников, их login`ы также помещаются в зону "Сейчас в чате". А вот их удаление при покидании чата у меня пока не реализовано. Это не сложно, но руки пока не дошли.

Есть профильная модалка, где размещена информация из профайла данного user-а. Причем для красоты, я сделал симметрично:

-3

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






// итак, все коды я пока не выкладываю, если интересно пишите в комменты..