Я создал часть своей CMS, которая позволяет администраторам преобразовывать весь текст на странице в текстовые области, чтобы они могли редактировать содержимое. Все содержимое, которое они изменяют, находится внутри div, и я передаю через jQuery / AJAX содержимое div на контроллер PHP, который обрабатывает данные. Тем не менее, jQuery просто отлично захватывает HTML и отправляет его на контроллер PHP, но PHP вырезает часть содержимого (иногда удаляя некоторые теги).
Например, если я отправлю
<div class="cmsedit" style="background-color:#EEE">Hello</div>
сохранит / запишет файл с этим
div class="cmsedit">Hello</div> .
Снимает открывающую скобку с div и b. Он не делает это все время. Если я не включаю тег стиля, он обычно оставляет код в порядке.
Вот код, который я использую на странице JavaScript.
$('.save_page').click(function(){
updated_content = $('.content_to_be_edited').html();
edit_page = $('#edit_page_name').val();
$.post("<?=site_url('admin/update_page_data') ?>", { content:updated_content,page_name:edit_page });
});
Вот страница контроллера PHP
$page_content = $this->input->post('content');
$page_name = $this->input->post('page_name');
$filename = $_SERVER['DOCUMENT_ROOT']."/application/views/".$page_name.".php";
// SAVE NEW FILE
$file = fopen($filename, 'w') or die("Can't open file");
$filedata = htmlspecialchars_decode($page_content);
fwrite($file, $filedata);
fclose($file);
У кого-нибудь есть идеи, почему все теги облажаются, когда PHP обрабатывает данные? Спасибо !!