【问题标题】: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'

【问题讨论】:

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

标签: php mysql


【解决方案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 & < >");
?>

【讨论】:

    猜你喜欢
    • 2013-01-14
    • 2012-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 2014-02-25
    • 2018-11-24
    • 2017-08-24
    相关资源
    最近更新 更多