作为构建内容管理应用程序的一部分,我遇到了无法调试的问题:
我已经以富文本编辑器修改过的形式创建了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);
数据以“ longtext
”字段编码为“ utm8mb4_bin
”的形式保存在数据库的“ itemcomment”下。
有时可以,有时不能。
我没有为此找到任何错误日志。通过某些输入,整个post
似乎消失了。
对于在哪里开始调试或可能出现的问题感到困惑。也许我提取的某些粗俗格式没有正确清理?
答案 0 :(得分:0)
关于您的问题,您可以寻求不同的解决方案
$itemname = base64_encode($_POST['itemname']);
$itemcomment = base64_encode($_POST['textarea_content']);
但是您需要在阅读后base64_decode
才能获得原始内容。
为blob
列选择itemcomment
或等效数据类型(我让您找到如何编写插入内容)
您肯定需要“准备”查询。