tinyMCE и WordPress, дающие нечетные символы ... проверенная комбинация решений - PullRequest
2 голосов
/ 17 июля 2009

Я пытаюсь встроить флэш-видео в пользовательскую настройку редактора 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>

Как вы можете видеть, он избегает кавычек, когда я не хочу ...

Любая помощь очень ценится, и я знаю, что это ошибка школьника. Мне просто нужно сесть прямо.

Спасибо.

Ответы [ 3 ]

2 голосов
/ 17 июля 2009

Это часто происходит, когда у вас есть код, который экранирует данные перед его использованием в SQL (как и должно быть) на сервере, на котором включена функция magic_quotes в php. Эта функция заставляет php автоматически экранировать получение и публикацию данных при загрузке. Если вы затем избегаете его снова, все идет не так, как надо - дважды сбрасывается, поэтому сброшенные данные попадают в БД.

PHP теперь отказался от этой функции, они поняли, что это была неприятность, она причиняла больше боли, чем спасала - они пытались создать систему безопасности, но в конечном итоге разработчик должен знать и обходить проблемы безопасности, а не о них позаботились молча. Сам я регулярно заканчивал тем, что включал код в материал, чтобы определить, было ли это включено, и отменить его на ранних этапах выполнения, если это было так.

1 голос
/ 16 июля 2012

Я имел это, используя функции "the_editor ()" и "wp_editor ()". Я не думаю, что на моем сервере включены магические кавычки, потому что я его не включил и все установил.

В любом случае, я добавил полоски ... везде.

Когда я звоню в редакцию:

<?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')) );

Это исправило это для меня, хотя я хотел бы знать, есть ли другой способ. Я думал, что фильтры встроены, я был неправ, но мне интересно, нет ли чего-то еще, что я пропускаю.

1 голос
/ 30 мая 2012

Если вы передаете свои данные через $ _POST, они сбрасываются, если magic_quotes включен (устарел сейчас и автоматически удаляется из PHP 5.4 и выше). Просто используйте stripslashes () , если он экранирован, исправил мои проблемы с экранированием HTML в WordPress по крайней мере с использованием tinymce.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...