Как не допустить попадание тегов в бд и в то же время убрать экранирование перед кавычками в textarea?

Здравствуйте, я разрабатываю плагин под Wordpress и использую тег <textarea> в админ-панели. При добавлении в БД текста с кавычками и тегами html автоматически добавляется экранирование и теги естественно тоже никуда не исчезают. В документации нашел функции esc_html( $text ) и esc_textarea( $text ) которые не срабатывают при любых моих попытках. Подскажите, как правильно и на каком уровне их использовать. Внутри тега
<textarea><?php esc_textarea( $text ); ?></textarea>
или именно при добавлении в БД. То есть мне нужно избегать все теги и обратные слэши при выводе
  • Вопрос задан
  • 406 просмотров
Решения вопроса 1
HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist
esc_html / esc_textarea используются на выводе текста в html / тег (в качестве атрибута например) или в textarea соответственно. Эти функции заменяют полученные html-символы (кавычки, угловые скобки) на коды символов, чтобы ваш html-код не побился.

Для вырезания / кодирования тегов / символов при записи необходимо использовать функции из набора sanitize_*
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slo_nik
@slo_nik
Добрый вечер.
Обратите своё внимание на htmlpurifier.org
Обрабатывать данные перед записью надо при помощи mysqli_real_escape_string
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы