0

我有 3 种形式都非常类似于里面的 wp_editor:

<tr valign="top">
    <th scope="row">
        <label for="mymessage">Message</label>
    </th>
    <td>
        <?php wp_editor(
            $mymessage,
            'mymessage',
            array(
                'media_buttons' => false,
            )
        ) ?>
        <input type="hidden" id="mymessage" name="mymessage" value=""/>
    </td>
</tr>  

在表单提交时,首先编辑器的内容使用 javascript 进入隐藏字段:

$('#my_form').submit(function(){
        if ($("#wp-mymessage-wrap").hasClass("tmce-active")){
            $('#my_message').val(tinyMCE.activeEditor.getContent());
        }else{
            $('#my_message').val($('#mymessage').val());
        }
        return true;
    });  

然后它进入一个 symfony 动作的动作executeUpdate
该操作的第一行,我输出 $_POST 的内容。
如果我将“你好”作为我的信息,以下是每种形式的结果:

\"hello\"- 保存为"hello"- 转义一次 - 正确的方式
\\\"hello\\\"- 保存为\"hello\"- 转义两次 - 额外的斜线
\\\\\\\"hello\\\\\\\"- 保存为\\\"hello\\\"- 转义四次 - 额外的 3 个斜线

Magic Quotes 已关闭 - 我输出了 phpinfo() 并进行了检查。

为什么 3 种不同的形式会以不同的方式转义消息,我怎样才能让它们都只转义一次?

我的表单在 wordpress 中,被调用的操作转到我的 symfony api。

任何想法将不胜感激

4

2 回答 2

0

以 symfony 的方式访问 POST 数据:

$request->request->get('mymessage')

或者使用 FormTypes 以正确的方式进行操作:http: //symfony.com/doc/current/book/forms.html

于 2013-09-15T14:46:20.490 回答
-1

关闭魔术引号。

请参阅文档:http ://de3.php.net/magic_quotes特别是http://de3.php.net/manual/en/security.magicquotes.disabling.php

于 2013-09-15T14:38:16.153 回答