@therealvetalhidden

Как лучше хранить данные?

Например на моем сайте есть комментарии, которые оставляют пользователи, Вопрос?

Как лучше делать:
1) Сохранять в бд полностью все что ввел пользователь, со всеми тегами, со всеми внутреними множественными пробелами итд и на выводе коментария, все фильтровать и выводить
2) Или перед записью в БД весь коментарий фильтровать на все это, а потом просто выводить

Как лучше? Как делаете Вы?
  • Вопрос задан
  • 2356 просмотров
Решения вопроса 3
passshift
@passshift
php, js, html5, css
А какой объем данных?

Можно разделить на 2 таблицы, в первой хранить id, владельца комментария, дату ну и другие "легкие" данные. Во второй таблице присваивать соответствующему id комментария его теги, текст и т.д.

Обязательно выставить индексы в первой таблице и во второй по id.

Неправильно понял вопрос, извиняюсь. Фильтровать ДО записи в БД - естественно.
Ответ написан
viktorvsk
@viktorvsk
Это называтся префильтр и постфильтр.

Постфильтр хорош для экономии места и лишней паранойи.

Префильтр хорош для гибкости: вдруг когда вы решите дать больше\меньше возможностей для постов.
Ответ написан
AMar4enko
@AMar4enko
Перед сохранением в базу обрабатываете с помощью htmlpurifier, который вычистит из вашего HTML всю грязь, оставив только нужные вам теги (заголовки, выделение жирным, курсив, списки и.т.д).
Сама по себе эта операция нетривиальная и кушает некисло ресурсов, поэтому ТОЛЬКО при сохранении, никаких подобных операций перед выводом.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
evnuh
@evnuh
Поиск Гугл помог мне, впусти и ты его в свой дом
Если всё равно комментарий фильтруется, то зачем его хранить в БД? Плюс это больше возможностей заинжектить код вам.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Ведисофт Екатеринбург
от 25 000 ₽
YCLIENTS Москва
от 200 000 до 350 000 ₽
от 300 000 до 500 000 ₽
05 мая 2024, в 23:43
8000 руб./за проект
05 мая 2024, в 23:39
3000 руб./за проект
05 мая 2024, в 23:36
3000 руб./за проект