我有 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。
任何想法将不胜感激