Редакторы форматированного текста не сохраняют определенные входные данные из TextArea в MySQL - PullRequest
0 голосов
/ 04 марта 2019

Как часть создания приложения для управления контентом, я столкнулся с проблемой, которую не могу отладить:

Я создал поле textarea в форме, которая модифицируется редактором форматированного текста.,Я пробовал несколько редакторов: TinyMCE, SummerNote и некоторых других, получая и получая одинаковые результаты оба раза.

Данные представляются в виде штрафа в 90% случаев.В 10% случаев, когда мне нужно протестировать большой блок текста + форматирование + изображения, когда я отправляю форму, она выполняет те же действия, что и при отправке, но при этом не происходит никакой реальной записи в БД, ничего не происходитзаписано или сохранено.

Например, я мог бы скопировать / вставить основное содержимое этой страницы: https://knowledge.hubspot.com/articles/kcs_article/cms-blog/create-and-publish-a-blog-post как «плохой» пример lorem ipsum, который пользователь может ввести, но он не сохранит.Но если я вставлю только первый шаг (из «Создать новую запись в блоге» прямо под первым изображением), он сохранится.Очень длинный обычный текст сохраняется нормально.

Данные должным образом очищены (я думаю):

      $itemname = $_POST['itemname'];
      $itemcomment = $_POST['textarea_content'];

      $query = "INSERT INTO `table`.`items` (`itemname`, `itemcomment`) VALUES ('$itemname', '$itemcomment');";

 mysql_query($query);

Данные сохраняются в БД в разделе "itemcomment" как longtextкодировка поля utm8mb4_bin.

Иногда это работает, иногда нет.

Нет журналов ошибок, которые я нашел для этого.Весь post, кажется, исчезает в воздухе при определенных входах.

Вид в недоумении, где даже начать отладку или в чем может быть проблема.Возможно, некоторые из ненужных форматов, которые я использую, не очищены должным образом?

1 Ответ

0 голосов
/ 05 марта 2019

Что касается вашей проблемы, вы можете выбрать различные решения

, сохранив значение db как есть

  $itemname = base64_encode($_POST['itemname']);
  $itemcomment = base64_encode($_POST['textarea_content']);

, но вам потребуется base64_decode после прочтения, чтобы получить исходный контент.

изменение типа данных в db

, выберите blob или эквивалентный тип данных для столбца itemcomment (я позволю вам найти, как написать вставку). Вам, безусловно, нужно будет "подготовить"."запрос.

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