Как очистить ввод пользователя?

Каков правильный способ дезинфекции данных формы перед отправкой в ​​базу данных? У меня есть следующий ввод текста:

<form method="post" action="options.php"> <?php wp_nonce_field('update-options'); ?> <input style="width:100%" type="text" name="data[title]" id="title" value="<?php $title = get_option('data_test'); echo $title['title']; ?>" /></p> <input type="hidden" name="action" value="update"/> <input type="hidden" name="page_options" value="lu_ban_data"/> <input style="float:left;margin-top: 10px; margin-bottom: 10px; vertical-align: middle; clear: both;" class="button-primary" type="submit" value="<?php _e('save changes') ?>" /> </form> 

Я пробовал делать echo sanitize_text_field($title['title']); , но он только дезинфицирует данные при запросе его из db, данные внутри db по-прежнему содержат нежелательные символы. Вот почему я хочу санировать, прежде чем отправлять его.

Я не уверен, что это полезно или нет. Как сказал s_ha_dum, вы должны опубликовать, как обрабатываете представленные данные и отправляете их в db.

Но для начала вы можете посмотреть на выход данных в форме:

 <input style="width:100%" type="text" name="data[title]" id="title" value="<?php $title = get_option('data_test'); echo esc_attr($title['title']); ?>" /></p> 

Используйте esc_attr () и esc_html () для данных, которые вы добавляете на страницу, отправленную пользователем, или вы не уверены в ее происхождении.

esc_attr() для содержимого, выводимого в атрибут тега html, а esc_html() – для содержимого, выводимого непосредственно на страницу или между тегами. Существуют также esc_attr_e() , esc_attr__() , esc_html_e и esc_html__() если вам нужен перевод.

Наконец, в пределах экранирующей серии есть esc_sql () для отправленных пользователем данных, которые вы собираетесь отправить в свою базу данных.

EDIT :

Как отметил @Milo в комментариях, здесь нет особого использования для esc_sql (), поскольку эти функции escape применяются уже к update_option () через функцию sanitize_option () и подготовлены при размещении в базе данных. Поэтому вы можете пропустить это. Если вы пишете собственные вызовы MySQL для хранения данных, вы должны посмотреть на $ wpdb-> prepare, чтобы избежать их.

Для добавления метаданных и параметров в базу данных с помощью встроенных функций вы уже охвачены.