Saya punya masalah dengan TinyMCE, ketika saya mengirimkan konten ke database, konten itu disimpan dengan <!doctype...<html>.....<body>
. Saya melihat beberapa postingan tentang menghapus plugin halaman penuh, tetapi dalam kasus saya, saya tidak memilikinya. Jadi saya mencoba menghapusnya untuk memastikan, dan menyegarkan cache browser saya, dan saya masih mendapatkan masalah yang sama. Saya hanya ingin menyimpan HTML di antara tag body.
Saya mengirimkan tinyMCE seperti formulir biasa dengan area teks memiliki nama POST dan dengan tombol kirim.
<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();
}
Terima kasih sebelumnya.