Customize Plugin

时间:2013-05-13 作者:Jessica

我正在尝试为WP在仪表板中创建自定义欢迎面板,但看不出哪里出了问题。它不允许我添加html。

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

你的update_option 应该在钩子回调中,并且应该检查$_POST[\'custom_welcome_panel\'] 在尝试更新选项之前设置。否则,这可能会在每次加载页面时覆盖您的选项。老实说,正如我所写的,我可以把我想要的任何东西都塞进期权价值中。我只需要向该网站发送一个POST请求。这是非常不安全的。

移动您的update_option 在您的函数中,在尝试使用它之前,请检查它是否已设置且不为空,以及process it like post content, 至少

function custom_welcome_panel() {
    // register the setting
    if (!empty($_POST[\'custom_welcome_panel\'])) {
        $option = wp_kses_post( $_POST[\'custom_welcome_panel\'] );
        update_option(\'custom_welcome_panel\', $option);
    }

    $customwelcome_panel = html_entity_decode(get_option( \'custom_welcome_panel\' ));
    // the rest of your code

You should also be using nonces.

看起来你可能正在破解一个核心文件(options.php), 如果这是真的,那是一个非常糟糕的主意。如果是这样的话,下次WordPress更新时,该攻击将被覆盖,并且您的代码将停止工作。

我试过这个。。。

update_option(\'html_test\', \'<p><a href="yay">Does HTML WOrK?</a></p>\');
。。。html插入得很好,返回得也很好。所以我看了一下jQuery。

问题在于:

jQuery("#welcome-panel").html("\'.$customwelcome_panel.\'")
想象一下用我的HTML填充的内容会发生什么:

jQuery("#welcome-panel").html("<p><a href="yay">Does HTML WOrK?</a></p>")
请注意,您有两套" 现在引号在<p> 然后在之后关闭href= 然后再次打开yay. 问题是中间有一些离群的角色。以下方法有效,但前提是标记一致且始终使用"围绕属性。

jQuery("#welcome-panel").html(\\\'\'.$customwelcome_panel.\'\\\').delay(300).fadeTo(\\\'slow\\\', 1);
使用addslashes 将更加稳健:

jQuery("#welcome-panel").html("\'.addslashes($customwelcome_panel).\'").delay(300).fadeTo(\\\'slow\\\', 1);
我不确定这会有多可靠。我只花了五分钟测试它。

把这些放在一起,我认为应该行得通。我不对您的项目的安全性或解决方案的健壮性负责。我是从几乎不充分的信息中拼凑出来的,但这是非常基本的东西。

参考文献

http://codex.wordpress.org/Data_Validation

结束

相关推荐

Nowplaying.cludde.php不会显示结果

网络黑猩猩。com建议我在这里发布,因为他们认为我的请求可能存在全球性问题。我认为我所缺少的是显而易见的和简单的,但两个月后,这里被提及似乎表明了另一种情况。我想做的就是从一些非常简单的php中获得一些结果,以便在侧栏小部件或主页中工作。我知道php正在工作,因为我可以在http://ie107.com/wp-content/themes/responsive-child-theme/nowplaying-example.php. 我尝试过允许PHP、Exec PHP和其他插件,但都没有成功。我知道他们的

Customize Plugin - 小码农CODE - 行之有效找到问题解决它

Customize Plugin

时间:2013-05-13 作者:Jessica

我正在尝试为WP在仪表板中创建自定义欢迎面板,但看不出哪里出了问题。它不允许我添加html。

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

你的update_option 应该在钩子回调中,并且应该检查$_POST[\'custom_welcome_panel\'] 在尝试更新选项之前设置。否则,这可能会在每次加载页面时覆盖您的选项。老实说,正如我所写的,我可以把我想要的任何东西都塞进期权价值中。我只需要向该网站发送一个POST请求。这是非常不安全的。

移动您的update_option 在您的函数中,在尝试使用它之前,请检查它是否已设置且不为空,以及process it like post content, 至少

function custom_welcome_panel() {
    // register the setting
    if (!empty($_POST[\'custom_welcome_panel\'])) {
        $option = wp_kses_post( $_POST[\'custom_welcome_panel\'] );
        update_option(\'custom_welcome_panel\', $option);
    }

    $customwelcome_panel = html_entity_decode(get_option( \'custom_welcome_panel\' ));
    // the rest of your code

You should also be using nonces.

看起来你可能正在破解一个核心文件(options.php), 如果这是真的,那是一个非常糟糕的主意。如果是这样的话,下次WordPress更新时,该攻击将被覆盖,并且您的代码将停止工作。

我试过这个。。。

update_option(\'html_test\', \'<p><a href="yay">Does HTML WOrK?</a></p>\');
。。。html插入得很好,返回得也很好。所以我看了一下jQuery。

问题在于:

jQuery("#welcome-panel").html("\'.$customwelcome_panel.\'")
想象一下用我的HTML填充的内容会发生什么:

jQuery("#welcome-panel").html("<p><a href="yay">Does HTML WOrK?</a></p>")
请注意,您有两套" 现在引号在<p> 然后在之后关闭href= 然后再次打开yay. 问题是中间有一些离群的角色。以下方法有效,但前提是标记一致且始终使用"围绕属性。

jQuery("#welcome-panel").html(\\\'\'.$customwelcome_panel.\'\\\').delay(300).fadeTo(\\\'slow\\\', 1);
使用addslashes 将更加稳健:

jQuery("#welcome-panel").html("\'.addslashes($customwelcome_panel).\'").delay(300).fadeTo(\\\'slow\\\', 1);
我不确定这会有多可靠。我只花了五分钟测试它。

把这些放在一起,我认为应该行得通。我不对您的项目的安全性或解决方案的健壮性负责。我是从几乎不充分的信息中拼凑出来的,但这是非常基本的东西。

参考文献

http://codex.wordpress.org/Data_Validation

相关推荐

如何将Java脚本添加到Custom-Page.php模板?

如何将javascript添加到自定义页面。php模板?如何使从w3schools ajax教程获得的以下javascript在自定义页面上工作。php模板?任何帮助都将不胜感激。工作javascript包含在以下HTML中:<!DOCTYPE html> <html> <style> table,th,td { border : 1px solid black; border-collapse: collapse;&#x