关注问题:With "magic quotes" disabled, why does PHP/Wordpress continue to auto-escape my POST data?
在wordpress中,即使魔术引号关闭,所有超级全球都会被占用
所以,按照这个答案:https://stackoverflow.com/a/8949871/1334268
如果我创建一个插件和一个类来访问原始POST,GET等等,这是一个很好的解决方案吗?你认为这种方法有什么缺点和问题吗?这是我的插件:
class MyPluginRequest{
public static function getPost( $key ){
global $_REAL_POST;
return isset( $_REAL_POST[ $key ] )? $_REAL_POST[ $key ] : FALSE ;
}
}
// A hack to cope with un-configurable call to wp_magic_quotes
// E.G. Make the original $_POST available through a global $_REAL_POST
global $_REAL_GET, $_REAL_POST, $_REAL_COOKIE, $_REAL_REQUEST;
$_REAL_GET = $_GET;
$_REAL_POST = $_POST;
$_REAL_COOKIE = $_COOKIE;
$_REAL_REQUEST = $_REQUEST;
每次我需要张贴未转义的值时,我都会使用MyPluginRequest::getPost( 'submit' );
。
$wpdb->escape
是否需要魔术引用值或非转义值?
答案 0 :(得分:1)
看起来它应该可以正常工作。在问题的后半部分,我认为$wpdb->escape
已根据评论栏
/**
* Do not use, deprecated.
*
* Use esc_sql() or wpdb::prepare() instead.
*
* ...
查看wordpress代码以确定wpdb::prepare
是否期望魔术引用值会让我们陷入可怕的wp代码的泥潭......> bites tounge<
它看起来像是期待非魔法引用的字符串给我,但是如果你传给它一个魔术引用的字符串,它有可能不会双重逃避,尽管我会通过测试验证。