Я думаю, что использую правильную функцию php для функции, над которой я работаю, но в двух словах. Я пытаюсь взять контент, представленный с помощью символов HTML, и отфильтровать его, чтобы он мог превратить теги HTML, такие как </a> or <p>
, во что-то, что я могу отправить в базу данных, но где-то я ошибаюсь. Я не могу выяснить, является ли это синтаксисом функции «filter_input», которую я пытаюсь использовать, или это что-то еще, например, косые черты или кавычки создают ошибку в процессе отправки?
Все остальное в отправленной форме хранится в БД, но 2 входных данных, которые я фильтрую, нет, поэтому моя ошибка в функции filter_input. Каков наилучший метод для дезинфекции ввода пользователя? Я слышал и читал, что не существует идеального способа сделать это, но как лучше всего поступить, если я планирую позволить пользователям вводить HTML-код, который мы хотим сохранить для отображения на веб-сайте?
Вот так у меня. Сначала я trim($_POST['input']);
и сохраняю его в переменной. Затем я использую эту переменную в filter_input следующим образом:
$content = filter_input(INPUT_POST, $ContentBody, FILTER_SANITIZE_FULL_SPECIAL_CHARS);
Однако, это не обрабатывается правильно. Где я не прав?
Я следовал некоторым спецификациям в руководстве по PHP и добавил их в файл php.ini из-за выбранной опции фильтра.
filter.default = full_special_chars
filter.default_flags = 0
Я также пробовал другие параметры фильтра, такие как
FILTER_SANITIZE_SPECIAL_CHARS
FILTER_SANITIZE_STRING
Ничего из этого не работает в принципе, поэтому я предполагаю, что мой синтаксис не в порядке. Я впервые использую это, поэтому мне нужно небольшое руководство от кого-то полезного, который может пролить свет на то, почему это не работает. Как я уже сказал, остальные данные, отправленные через эту форму, проходят нормально, но только то, что я фильтрую, становится пустым. Бланк, 0, zip, zilch, nada.
Любая помощь приветствуется, я просмотрел несколько статей в переполнении стека, и мне кажется, что я все прекрасно понял, но не могу заставить мою работать. Спасибо.