2

我正在尝试将 Flash 视频嵌入到 tinyMCE 编辑器的自定义设置中。它与主要的 WordPress 是分开的,但它仍在 wordpress 管理区域内。

一个简单的 youtube 嵌入块的输出代码如下:

<p><img mce_src=\"../wp-content/themes/porcelain/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif\" src=\"../wp-content/themes/porcelain/tinymce/jscripts/tiny_mce/plugins/media/img/trans.gif\" width=\"560\" height=\"340\" style=\"\" class=\"mceItemFlash\" title=\"&quot;allowFullScreen&quot;:&quot;true&quot;,&quot;allowscriptaccess&quot;:&quot;always&quot;,&quot;src&quot;:&quot;http://www.youtube.com/v/26Ywp6vUQMY&amp;hl=en&amp;fs=1&amp;&quot;,&quot;allowfullscreen&quot;:&quot;true&quot;\"></p>

如您所见,当我不希望它转义引号时...

非常感谢任何帮助,我知道这是一个男生错误。我只需要直接设置。

谢谢。

4

3 回答 3

2

magic_quotes当您的代码在启用了 php 功能的服务器上的 SQL 中使用数据之前转义数据(应该这样做)时,通常会发生这种情况。此功能导致 php 在加载时自动转义获取和发布数据。如果你再次转义它,事情就会出错 - 它被双重转义,所以转义的数据进入数据库。

PHP 现在已经弃用了这个特性,他们意识到这是一个麻烦,造成的痛苦多于它所节省的——他们试图建立安全性,但最终开发人员需要意识到并解决安全问题,而不是让他们小心默默的。我自己,我最终经常在东西中包含代码,以检测是否启用了它,如果启用了,则在执行的早期将其反转。

于 2009-07-16T22:37:57.470 回答
1

如果您通过 $_POST 传输数据,如果启用了magic_quotes(现在已弃用并自动从 PHP 5.4 及更高版本中删除),它将被转义。如果它被转义,只需使用stripslashes(),至少解决了我在 wordpress 中使用 tinymce 转义 HTML 的问题。

于 2012-05-30T08:56:17.863 回答
1

我使用“the_editor()”和“wp_editor()”函数发生了这种情况。我认为我的服务器没有启用魔术引号,因为我没有启用它,并且我安装了所有东西。

无论哪种方式,我都添加了stripslashes......无处不在。

当我打电话给编辑时:

<?php wp_editor(stripslashes($custom_text), 'custom_text'); ?>

当我去保存 POST 数据时:

if ( isset($_REQUEST['custom_text']) ) {
    update_option('my_custom_text', esc_sql(stripslashes($_POST['custom_text'])));
    $updated = true;
}

当我检索存储的数据时:

$custom_text = apply_filters( 'the_content', stripslashes(get_option('my_custom_text')) );

这为我解决了这个问题,尽管我很想知道是否有其他方法。我以为过滤器内置了这个,我错了,但我想知道我是否还缺少其他东西。

于 2012-07-16T17:23:30.987 回答