富文本编辑器不会将某些输入从TextArea保存到MySQL

问题描述 投票:0回答:1

作为构建内容管理应用程序的一部分,我遇到了一个无法调试的问题:

我已经在一个由富文本编辑器修改的表单中创建了一个textarea字段。我尝试过几个编辑:TinyMCE,SummerNote和其他一些编辑,两次获得相同的结果。

数据在90%的情况下提交。在我需要测试大块文本+格式+图像的10%的情况下,当我提交表单时,它会执行与提交相同的所有操作,但是没有实际的DB写入发生,没有什么是录制或保存。

例如,我可能会复制/粘贴此页面的主要内容: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);

数据作为编码longtextutm8mb4_bin字段保存在“itemcomment”下的DB中。

有时候它有效,有时则不然。

我没有找到错误日志。整个post似乎在某些投入下消失得无影无踪。

在哪里甚至开始调试或问题可能是一种损失。也许我拉的一些粗俗格式没有正确清理?

php mysql textarea form-submit wysiwyg
1个回答
0
投票

关于您的问题,您可以寻求不同的解决方案

保持数据库原样

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

但阅读后你需要base64_decode才能获得原始内容。

更改数据库中的数据类型

blob列选择itemcomment或等效数据类型(我让你找到如何编写插入)你肯定需要“准备”查询。

© www.soinside.com 2019 - 2024. All rights reserved.