Php 获取未替换的帖子,而不是WordPress中的神奇引用值
问题如下: 在WordPress中,即使关闭,所有超全局变量都将转义 因此,根据这个答案: 如果我创建一个插件和一个类来访问原始POST、GET等,这是一个好的解决方案吗?你认为这种方法有什么缺点和问题吗 下面是我的插件:Php 获取未替换的帖子,而不是WordPress中的神奇引用值,php,wordpress,magic-quotes-gpc,Php,Wordpress,Magic Quotes Gpc,问题如下: 在WordPress中,即使关闭,所有超全局变量都将转义 因此,根据这个答案: 如果我创建一个插件和一个类来访问原始POST、GET等,这是一个好的解决方案吗?你认为这种方法有什么缺点和问题吗 下面是我的插件: class MyPluginRequest{ public static function getPost( $key ){ global $_REAL_POST; return isset( $_REAL_POST[ $key ] )
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
期望一个已经被引用的值还是一个未被引用的值?看起来它应该可以正常工作。在问题的后半部分,我相信根据注释块,$wpdb->escape
已被弃用
/**
* Do not use, deprecated.
*
* Use esc_sql() or wpdb::prepare() instead.
*
* ...
查看WordPress代码以确定
wpdb::prepare
expects magic quoted value是否会导致我们陷入可怕WordPress代码的泥潭…>咬舌头刚开始考试就让我想把脑袋炸了;wordpress代码是我在开源领域见过的最糟糕的代码之一。lol wpdb::prepare是否需要引用值?我也钻研了一些代码。。。是的,这是一场噩梦。。。wp_insert_post需要转义值。wpdb->插入、更新、删除不需要转义值。。。伙计,我必须阅读我用来决定是否逃逸的每个函数吗??有列表吗?也许你应该为开发者找一个wordpress IRC频道或者别的什么。这些人应该能够更容易地回答这些问题。我将在wordpress论坛上发表文章。我们可能遗漏了一些东西。。。我不应该在wp中编写那么混乱的代码,对吗?或者很多程序员只是做错了,许多插件可能容易受到sql注入的攻击;未正确转义或内容中有额外的斜杠?lolidk,wp的代码真的很糟糕。看到这样的系统如此流行真是太遗憾了。我的意思是,从用户的角度来看,这很好,但从代码的角度来看,这太糟糕了!