0

serialize()我对和有一些问题unserialize()

我正在为 Wordpress 编写一个函数,该函数实际上是一个设置页面,我正在尝试使用两个输入字段导出和导入设置数组。

代码(和页面)有点长,所以我把它贴在 PASTEBIN 上,这样更舒服一些。

我遇到的问题是 wordpress 使用设置 API 将选项(或设置)保存为序列化数组。

我拥有的功能可以成功显示以下选项:

a:10:{s:24:"brsa_copyright_meta_text";s:0:"";s:25:"brsa_remove_menu_css_list";s:0:"";s:19:"brsa_remove_submenu";s:0:"";s:21:"brsa_remove_menu_list";s:0:"";s:15:"brsa_footer_txt";s:0:"";s:22:"brsa_dash_wdgt_content";s:0:"";s:36:"brsa_add_custom_login_message_string";s:0:"";s:21:"brsa_login_url_string";s:0:"";s:21:"brsa_login_alt_string";s:0:"";s:14:"brsa_login_img";s:0:"";}

没关系。它是序列化的,但是当我尝试将其插入数据库(或通过按导入按钮将其显示在另一个字段上)时,escaped我认为它实际上是,并且无论如何,它不会以序列化的方式插入数据库,但是作为一个字符串..

a:10:{s:24:\"brsa_copyright_meta_text\";s:0:\"\";s:25:\"brsa_remove_menu_css_list\";s:0:\"\";s:19:\"brsa_remove_submenu\";s:0:\"\";s:21:\"brsa_remove_menu_list\";s:0:\"\";s:15:\"brsa_footer_txt\";s:0:\"\";s:22:\"brsa_dash_wdgt_content\";s:0:\"\";s:36:\"brsa_add_custom_login_message_string\";s:0:\"\";s:21:\"brsa_login_url_string\";s:0:\"\";s:21:\"brsa_login_alt_string\";s:0:\"\";s:14:\"brsa_login_img\";s:0:\"\";}

..使整个代码无法使用。代码的相对部分是这样的:

 $my_options = get_option( 'o99_brsa_settings' );


    $currentsettings = "";
        if ( isset( $_POST['import'] ) && trim($_POST['exccc']) != "" ) {
            $currentsettings = $_POST['exccc'];
            update_option( 'o99_brsa_settings', serialize($currentsettings));

        } elseif ( isset( $my_options ) && ( $my_options != "" ) ) {
            if ($o99_brsa_options['brsa_keep_settings_exp'] !='') {
            $currentsettings = $o99_brsa_options['brsa_keep_settings_exp'];  
            } else {
                $currentsettings =  serialize( $my_options );
            }
        } 

尽管我确实相信应该查看整个代码以了解它应该如何工作。

除了它不起作用的事实之外,我不太确定问题是什么,但首先我想知道为什么值是/escaped/以及如何防止它?

任何其他帮助也将不胜感激..

4

1 回答 1

0

您的服务器可能已magic_quotes启用。请您的管理员禁用它。

于 2013-04-08T16:43:31.553 回答