htmlentities and editing text

时间:2019-10-17 作者:StripyTiger

我通过ajax接收用户输入。我正在使用stripslashes,然后通过Wordpress插入功能发送到数据库。

当我在屏幕上显示数据时,我使用的是htmlentities

在某些情况下,我还需要在编辑屏幕中将数据返回给用户。在将文本放回文本框进行编辑之前,是否需要清理数据。

1 个回复
SO网友:butlerblog

在将文本放回文本框进行编辑之前,是否需要清理数据。

您可以“清理”正在接收的数据。然后在输出时“退出”。

根据具体的代码(您没有提供任何示例),您可能需要执行以下操作stripslashes() (或将其全部替换)。WP has several built in functions for handling various kinds of data. 例如:

// Use the "sanitize" functions instead of stripslashes()
$sanitized_username = sanitize_user( $_POST[\'user_login\'] );
$sanitized_email = sanitize_email( $_POST[\'user_email\'] );
$sanitized_fname = sanitize_text_field( $_POST[\'first_name\'] );
$sanitized_lname = sanitize_text_field( $_POST[\'last_name\'] );
// Now you can write these to the db or use them.

// "Escape" data when outputting
echo \'<input class="\' . esc_attr( $my_class ) . \'" name="some_input" value="" />\';

echo \'<a href="\' . esc_url( $my_url ) . \'" />\';
这些只是几个例子——有quite a few different functions within WP 自身进行正确的数据处理。

此外,如果您确实知道数据是什么,就不需要转义数据。在您的情况下,您是从数据库中提取它,因此您不必相信它是100%安全的。但是,如果您正在输出某个变量中包含的内容,但该变量是在代码中设置的(即,您没有从不受信任的源中提取该变量),则不需要对其进行转义。

相关推荐