У меня есть редактор WYSIWYG, который отлично работает, когда я сам печатаю, но если я копирую пасту, скажем, с веб-сайта, исходный код копируется вместе с ним, что я хочу разрешить, за исключением того момента, когда это нарушает мой код.
Внутри поля ввода я повторяю данные, чтобы их можно было редактировать и сохранять в своей базе данных.
Нравится:
<input type = "hidden" name = "content" value = "'.$getversion['content'].'">
Это прекрасно работает, как я уже сказал, когда печатал сам.
Но если я, например, скопирую какой-нибудь текст lorem ipsum с веб-сайта, он скопирует с ним стиль (размер шрифта, цвет и т. д.).
Это сохраняется так:
<p style = "margin: 0px 0px 15px; padding: 0px; text-align: justify; font-family: 'Open Sans', Arial, sans-serif;">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis libero erat, tincidunt id placerat vel, vehicula at mauris. Morbi nibh sapien, lacinia ultricies urna dapibus, placerat suscipit risus. Maecenas vulputate, ante at blandit aliquam, ante arcu sollicitudin diam, vitae commodo metus mi nec purus. Nullam a cursus justo, eget venenatis dolor. Etiam condimentum a lectus nec volutpat. Ut sodales vestibulum urna, sed eleifend est. Praesent diam nisl, fermentum a orci ac, viverra efficitur dui. Nam eget nulla ante. Suspendisse feugiat tortor non egestas sodales. Morbi id vestibulum nisl. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos.</p>
<p style = "margin: 0px 0px 15px; padding: 0px; text-align: justify; font-family: 'Open Sans', Arial, sans-serif;">Mauris placerat rhoncus metus eu accumsan. Nulla porta tempor tincidunt. Aliquam commodo massa ac ullamcorper ullamcorper. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras at ante consectetur, dictum metus auctor, viverra lectus. Mauris tincidunt libero nunc, eu mattis quam rhoncus in. Curabitur ut purus diam. Maecenas posuere elit eget consectetur consequat. Quisque vulputate a magna ac finibus. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Maecenas ligula nisi, faucibus sed sodales eu, bibendum eu est. Integer blandit velit eget dui fermentum euismod. Maecenas finibus aliquet sem at auctor.</p>
Как видите, он ломается из-за цитат:
Что я могу с этим поделать?
Я прочитал, что мне нужно снова использовать real_escape_string (я уже использую его при сохранении), когда повторяю его, но это не исправляет.
Я также должен упомянуть, что публикую его с помощью ajax.






Когда вы сохраняете в db, сделайте это ...
htmlentities($str);
при выводе из базы данных сделайте это ...
echo html_entity_decode($str);
When you are saving to the db Нет, не делайте этого. Это открывает SQL-инъекции. Ваш объект декодирования также открывает инъекции XSS.
real_escapeпредназначен для экранирования символов, специальных для SQL (также несвязанных, но подготовленных операторов, с параметризованными запросами - это то, что вы должны использовать для взаимодействия с БД). Используйтеhtmlspecialcharsдля вывода в браузер, также посмотрите константы для этой функции.