如何转义$_GET并检查是否已设置?

时间:2020-08-11 作者:Alt C

我向wordpress提交了一个插件,我得到了一个反馈,我必须逃离这个插件$active_tab = isset( $_GET[ \'tab\' ] ) ? $_GET[ \'tab\' ] : \'front_page_options\';

如果我喜欢的话

$get_the_param = esc_html($_GET[ \'tab\' ] );

$active_tab = isset( $get_the_param ) ? $get_the_param : \'front_page_options\';

似乎有效,但由于isset(无法对表达式的结果使用isset())未设置$\\u GET,它将引发通知?可能的解决方案是什么?

谢谢

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

正确的方法是使用filter_input(). 以下是使用自定义清理功能的示例:

$tab = filter_input(
    INPUT_GET, 
    \'tab\', 
    FILTER_CALLBACK, 
    [\'options\' => \'esc_html\']
);

$tab = $tab ?: \'front_page_options\';

相关推荐

Need a help on sanitization

我在评论中有一个主题,我确实在像这样的少数情况下添加了“type”=>“select”部分。$wp_customize->add_setting( \'personal_lite_post_link\', array( \'default\' => \'enable\', \'sanitize_callback\' => \'personal_lite_select_callback\' ) ); $w