Archive for April, 2008

14
Apr
08

Без меня

«Сейчас на сайте нет зарегистрированных пользователей — это ты.»

Advertisements
11
Apr
08

Составной primary key

Сейчас сессии в базе разделяются на типы путём добавления префикса к идентификатору, это было сделано для индивидуализации записей, т. к. записей разного типа, но с одним ид, может быть несколько. Возможно, внести небольшие изменения в базу, добавив ещё один столбец с типом (как некогда уже было, кстати). И объявить составной primary key из ид сессии и её типа.

03
Apr
08

RSS cache

Сделал честный кэш для рсс-френдленты. Свой для каждого канала. Ура, лень сдаётся)

02
Apr
08

izopanchrom.ru

Ах, да как же забыл? В другом месте накричал, а тут нет. Сайтов на ipx стало в Интеренете два раза в меньше. А-а-а-а.

02
Apr
08

Таймауты

Сделал таймауты для всего, для чего только мог придумать:

внесения стандартных текстовых записей (страницы, новости…);
загрузки (одного или группы) файлов;
записи комментариев;
регистраций новых пользователей;
авторизации на сайте;
выдачи страниц или файлов движком;
запросов на восстановление пароля;
а сессии пользователей на сайте и сессии восстановления пароля уже были раньше.

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

Технически это выглядит не очень элегантно: для каждого клиента заводится несколько сессий с одним идентификатором, но различными префиксами. В строке сессии хранится её уже упомянутый идентификатор с префиксом, id-номер зарегистрированного пользователя или ноль для гостя, ip-адрес и время последнего действия. Обновление сессии происходит по её идентификатору и префиксу (типу), но для обманщиков (которые скрыли или изменили идентификатор сессии) существует ещё и проверка по ip-адресу, чтобы все честно выжидали назначенное им время и не флудили, например.

SQL: Так как тип сессии обозначает её префикс, специальная колонка для типа была упразднена.