提交表单时出错
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 & < >");
?>
【讨论】:
以上是关于提交表单时出错的主要内容,如果未能解决你的问题,请参考以下文章