POST中删除了HTML标记

时间:2011-02-28 13:19:00

标签: php jquery ajax post ckeditor

我正在研究ckeditor中编辑页面的预览功能。 在字段中的任何更改后,我正在POST主体以预览操作,然后将其保存到会话。 之后我使用GET获取数据。 不幸的是,我发布的帖子没有任何html标签,因此我无法预览图像:[

这是一个previewAction:

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 :(得分:0)

检查cke.getData()函数是否删除标记。

或者在PHP之前的某个地方,你没有strip_tags()或某事。

答案 1 :(得分:0)

我觉得你做错了。不要使用GET获取数据,只需在需要时创建隐藏字段。我认为你不需要这里的会议。

答案 2 :(得分:0)

cke.getData()不会删除标签。 此脚本中不需要会话,但这不是问题。从$ _POST ['body']读取后,Html没有标签。