• Правильный способ хранения текста и HTML-кода в базе MySQL?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Есть подозрение что в самой базе у вас таблицы не в UTF-8, поэтому символы и портятся.
    Никаких особых действий не нужно делать, в sql текст html хранится без проблем.
    Ответ написан
    Комментировать
  • Правильный способ хранения текста и HTML-кода в базе MySQL?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Ответ на вопрос из заголовка:
    Никак особенно не хранить. Хранить абсолютно так же, как и любые данные, - как есть. То есть, НИКАК их не модифицируя для хранения.

    Решение конкретно твоей проблемы:
    mysql_set_charset('utf8'); после коннекта
    +
    плюс таблицы должны иметь кодировку utf8
    Подробнее: phpfaq.ru/charset

    Разбор вопроса:
    везде совет для записи в базу использовать mysql_real_escape_string(),

    Это информация устарела и не соответствует действительности.
    Единственно правильным вариантом добавления данных в запрос являются подготовленные выражения.

    Как я понимаю необходимо обрабатывать текст вот так перед вставкой:

    Неправильно понимаешь.
    Перед вставкой текст обрабатывать не надо вообще никак.
    Для корректной работы SQL, как я уже писал выше, должны использоваться подготовленные выражения.
    HTML же к SQL не имеет ни малейшего отношения. и никакая HTML функция, разумеется, при сохранении в БД использоваться не должна.

    К примеру "⇔" при записи в базу превращается в "?"

    Вот с этого и надо было начинать. У тебя проблема с кодировками.
    Ответ написан
    2 комментария
  • Поможет ли такой php-код защититься от sql-инъекций и XSS, какие в нём есть уязвимости?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Все что делает этот идиотский код - это портит входящие данные.
    Я даже не знаю, стоит ли объяснять. Ведь 100500 раз уже объясняли.

    Но самый, конечно ад - это ответы.

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

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

    И это неловкое чувство, когда 2015 году слышишь самую заветную мантру мадагаскарских гамадрилов: "mysql_real_escape_string зашышает от ынъекцый!". Стоит, блин, такой "устаревший", но еще крепкий архангел с пылающим мечом, и разит супостата прямо в темечко - вот так представляет себе принцип работы этой функции средний пользователь похапе.
    Ответ написан
    Комментировать
  • Подход (алгоритмы и тд) чтобы сделать поиск по параметрам как на Яндекс-маркете?

    Aleksey
    @Aleksey
    Советую обратить внимание на Apache Solr. Ключевая функциональность требуемая для такого ресурса — фасетная навигация. Apache Solr поддерживает различные фильтры/фасеты по числовым диапазонам (цены), датам, категориям/тэгам (множественные значения) и тд. Все фильтры кэшируются в памяти в ввиде битсетов. В дополнение ко всему отличный полнотекстовый поиск, подсказки правописания, возможность поиска схожих документов-товаров по описанию основанное на tf*idf которое дает высоко релевантные результаты, распределенный поиск, шардирование, репликацию и многое другое. Apache Solr используется весьма известными сайтами поиска товаров типа zappos, cnet и пр.
    Ответ написан
    Комментировать