TinyMCE에서이 문제가 발생했습니다. 콘텐츠를 데이터베이스에 제출하면 <!doctype...<html>.....<body>
으로 저장됩니다. 전체 페이지 플러그인 제거에 대한 게시물을 보았지만 제 경우에는 그럴 수 없습니다. 그래서 나는 그것을 지우고 브라우저 캐쉬를 새로 고치려고했지만 여전히 같은 문제가 있습니다. body 태그 사이에 HTML을 저장하기 만하면됩니다.JS TinyMCE가 전체 페이지를 저장 중입니다
POST 이름과 전송 버튼이있는 텍스트 영역이있는 일반 양식처럼 tinyMCE를 제출합니다.
<form method="post" action="/profile/edit/profile/text">
{{ csrf_field() }}
<input type="hidden" name="text2" value="1">
<textarea id="tinymce-editor" name="text">{!! $profile -> text !!}</textarea>
<button class="btn btn-success" type="submit"><i class="fa fa-fw fa-check"></i>Lagre</button>
</form>
.
/**
* @return mixed
*
* Process profile text
*/
public function postEditText() {
// Sanitize HTML
$html = $this -> sanitizeHTML(Input::get('text'));
// Validate
$val = Validator::make([
'text' => $html
], [
'text' => 'sometimes|max:50000'
]);
if ($val -> fails()) {
return $this -> backWithErrors($val);
}
// Update
Auth::user() -> profile() -> update([
'text' => $html
]);
return $this -> backWithSuccess('Profilteksten ble lagret!');
}
.
/**
* @param $html
* @return string
*
* HTML sanitizer
*/
private function sanitizeHTML($html) {
// Disable entity loader
libxml_disable_entity_loader(false);
// New DOM doc
$d = new \DOMDocument();
$d -> loadHTML($html);
// Script tags
$st = $d -> getElementsByTagName('script');
$l = $st -> length;
// Remove
for ($i = 0; $i < $l; $i++) {
$st -> item($i) -> parentNode -> removeChild($st -> item($i));
}
return $d -> saveHTML();
}
미리 감사드립니다.
그래서 TinyMCE에서 콘텐츠를 추출하고 데이터베이스에 저장하는 데 어떤 코드를 사용하고 있습니까? 전체 페이지 플러그인을 설치하지 않은 경우 getContent()를 호출하면 body 태그 사이에있는 내용 만 가져옵니다. 문제의 코드를 보지 않고도 우리가 할 일은 추측을 제공하는 것입니다. –
코드를 추출하는 데 아무 것도 사용하지 않습니다. tinyMCE로 대체되는 텍스트 영역을 가진 보통 형태. 양식은 일반 양식처럼 제출됩니다 (AJAX 없음, 제출 버튼 만). 게시물을 코드로 업데이트 할 수 있습니다. – Kaizokupuffball