我有一个文本区域要验证:
<form method="POST">
<textarea id="textarea" name="textarea"></textarea>
</form>
使用 Ajax 发送值:
$.ajax('ajaxurl', {
method: "POST",
data: {'action': 'my_action', 'textarea': $('#textarea').val()},
processData: false,
contentType: false,
});
在functions.php
:
function my_action(){
$textarea = $_POST['textarea'];
if ( !empty( $textarea ) ) {
global $wpdb;
$textarea = sanitize_textarea_field($textarea);
$wpdb->insert( 'data_table', array('textarea' => $textarea), array('%s') );
}
}
add_action( 'wp_ajax_my_action', 'my_action' );
add_action( 'wp_ajax_nopriv_my_action', 'my_action' );
sanitize_textarea_field()
是否足以验证文本区域?或者我做了更多的检查?
sanitize_textarea_field()
将执行以下操作
- 检查无效的 UTF-8
- 将单个<字符转换为实体>字符转换为实体>
- 去除所有标签
- 删除换行符、制表符和多余的空格
- 条带八位字节
虽然从数据的角度来看这应该足够了,但是我建议从安全的角度来看,你也应该限制输入的大小