提交表单时出错

Posted

技术标签:

【中文标题】提交表单时出错【英文标题】:Error in submitting form 【发布时间】:2018-05-10 11:00:01 【问题描述】:

我在 php 应用程序上使用 tinymce 作为文本区域,当我直接键入文本时,它会毫无错误地提交给 mysql。但是,当我使用除 Calibri (Body) 以外的任何其他字体从 MS Word 复制文本时,出现以下错误并且未提交文本:

发生错误。您的 SQL 语法有错误;检查 与您的 MariaDB 服务器版本相对应的手册 'Calibri','sans-serif' 附近使用的语法; mso ascii 主题字体: 小拉丁语;第 1 行的 mso-fareast-font-famil'

【问题讨论】:

提供有关您的问题的更多信息 你能显示你正在执行的查询,而不仅仅是错误消息吗? 您似乎想保存未转义的字符串。 【参考方案1】:

问题:

当您从 MS Word 复制粘贴文本时,文本的格式会被复制。

因此,当您在 tinymce 文本区域中粘贴相同内容时,文本连同格式都会被粘贴。

示例:

<p><span style="font-family: 'Calibri','sans-serif'; font-size: 14px; background-color: #f9f9f9;">Hello World!</span></p>

解决方案:

在将字符串传递给数据库之前转义字符串 - 使用 htmlspecialchars。

但是仍然使用转义字符串,您的应用程序很容易受到 SQL 注入攻击。所以使用准备好的语句。

PHP 代码:

<?php
    $text = htmlspecialchars("abc & < >");
?>

【讨论】:

以上是关于提交表单时出错的主要内容,如果未能解决你的问题,请参考以下文章

提交带有上传图片选项的表单时出错。 PHP 代码点火器

用SQL数据库!我提交表单,表单有的为空时就出错

Spring mvc 表单提交问题!!关于date类型!!

AJAX提交表单,上传出错的国际化信息无法显示在jsp页面上

如果响应在模态中出错,则 ReactJS 引导警报

CSRF 令牌无效。请尝试重新提交表单。 Symfony 4