HTML-теги удаляются в POST - PullRequest
       13

HTML-теги удаляются в POST

1 голос
/ 28 февраля 2011

Я работаю над функцией предварительного просмотра страницы редактирования в ckeditor. После любых изменений в поле я отправляю тело для предварительного просмотра действия и затем сохраняю его в сеансе. После этого я получаю данные, используя GET. К сожалению, тело, которое я публикую, возвращается без тегов html, поэтому я не могу просмотреть изображения:

Вот превью действий:

public function previewAction() {
  if($_POST) {
    $id = rand(1, 100000);
    unset($_SESSION['preview']);
    if(isset($_POST['body'])) {
        $_SESSION['preview'][$id] = array( 'body'=> $_POST['body'] );
        echo $id;
        exit;
    }
    else {
        throw new Exception('Body not posted for preview');
    }
  }
  elseif($this->params['param1']) {
    $id = $this->params['param1'];
    $page = new page();
    $page->populate($_SESSION['preview'][$id]);
    $this->view->page = $page;
    $this->contentRender = 'index/page.php';
    $this->render = 'content_only.php';
  }
  else {
    exit;
  }

Предварительный просмотр функции js:

function updateSubmit(force) {
  if(timeout_id)
    clearTimeout(timeout_id);
  if(cke && ( (busy==false && update_needed == true) || force==true ) ) {
    timeout_id = setTimeout(function() {
    if(busy==false) {
        $.ajax({
          type: 'POST',
          url: '/index/preview/',
          data: {body: cke.getData()},
          success: function(data) {
            $.each(iframe, function() {
                $(this).attr('src', '/index/preview/'+data);
            });
            busy = false;
            update_needed = false;
          }
        }
        )
    }
    }
    , 200);
  }
}

Заранее спасибо за помощь.

Ответы [ 3 ]

0 голосов
/ 28 февраля 2011

Я чувствую, что вы делаете это неправильно. Не выбирайте данные с помощью GET, просто создайте скрытое поле, если вам нужно.
Я не думаю, что вам здесь нужна СЕССИЯ.

0 голосов
/ 28 февраля 2011

cke.getData () не удаляет теги. Сессия не нужна в этом скрипте, но это не проблема. HTML не содержит тегов после чтения из $ _POST ['body'].

0 голосов
/ 28 февраля 2011

Убедитесь, что функция cke.getData() не удаляет теги.

Или в PHP где-то до этого скрипта у вас нет strip_tags () или sth.

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