2010-05-25 4 views
0

Я использовал wmd-editor в моем приложении cakephp v1.3.отображения HTML содержимое из базы данных с форматированием в нем

Конфиг, который я написал следующим образом:

 

wmd_options = { 
      output: "HTML", 

      lineLength: 40, 

      buttons: "bold italic | link blockquote code image | ol ul heading hr", 

      autostart: true 
     }; 
 

Когда я отправить форму в HTML в ОМП включен текстовое поле сохраняется в базе данных с htmlentities() сделано в тексте то, что декодируется с html_entity_decode() метод автоматически.
, но текст отображается как это включая HTML кодирование, как этот

<p><strong>hello dear friends</strong></p>\n\n<pre><code>I want to make sure that everything that you type is visible clearly.\nadasfafas\n</code></pre>\n\n<blockquote>\n <p>sadgsagasdgxcbxcbxc</p>\n</blockquote>\n\n<p><em>sadfgsgasdsgasgs</em></p>\n\n<p><b><a href="http://kumu.in">this is the link</a></b></p>

Пожалуйста, помогите мне решить эту проблему

Благодаря

+1

Вы пробовали без 'htmlentities()' и 'html_entity_decode()'? Похоже, что вход уже может быть закодирован (т.е. '>' становится '& gt;', который затем отображает '<' на вашей странице, а не в источнике. – deizel

+0

Да, вы правы ... Я понял это уже ... но теперь перед другой проблемой. :-((заполнение декодированного текста обратно в wmd-ввод так, чтобы все форматирование сохранялось и видимо для конечного пользователя) Фактически я использую Sanitize :: clean method of cake php sanitize class. Это автоматически делает htmlentities для данные, отправленные в базу данных. –

ответ

0

Так как вы установите параметр, как output: "HTML", это будет сохранен как html, однако вы можете использовать функцию strip_tags, чтобы удалить теги html из текста.

+0

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

1

Для дезинфекции от XSS в целом лучше сохранить необработанный HTML в базе данных без изменений и дезинфекции во время вывода/отображения. Используйте базовую библиотеку Sanitize.