【问题标题】:Apostrophe show up as symbols when enter data in php在php中输入数据时撇号显示为符号
【发布时间】:2014-03-29 01:26:52
【问题描述】:

假设我在一个表单中输入了一个带有这个词的评论,例如“john's cookhouse”。它将显示为“john's cookhouse”

我正在使用以下转义函数清理输入和输出。

function escape($string) {
    return htmlentities($string, ENT_QUOTES, 'UTF-8');
}

例如 `escape($_POST['comment']);

我怎样才能让撇号被接受?

【问题讨论】:

    标签: php escaping symbols apostrophe sanitize


    【解决方案1】:

    我正在清理输入和输出

    那你就错了。

    进入,您应该将它传递给准备好的语句。

    出来的时候你应该使用htmlentities或更精细的函数。

    总是适当地逃避。过度转义会导致您在此处看到的双重编码。

    【讨论】:

    • 哇,你是对的。那行得通。我删除了输入输入的转义。仅在输出时使用它。现在我的问题是,如果我不保护数据库中的输入,是否有人能够输入 sql 注入?顺便说一句,我正在使用准备好的语句。
    • 阅读该链接,我现在理解得更好了。我不必清理数据库中的数据;也就是说,如果我使用准备好的语句。但是如果从数据库中获取数据,我确实需要对其进行清理。很高兴知道。
    • you should be using mysql_real_escape_string - 什么?
    【解决方案2】:

    我也遇到这样的问题...

    就在一分钟前,我找到了答案:html_entity_decode($myString)

    【讨论】:

    • 很遗憾,您弄错了。而不是不断解码,你不应该执行额外的编码。
    猜你喜欢
    • 2019-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2015-07-04
    • 1970-01-01
    • 1970-01-01
    • 2010-11-04
    相关资源
    最近更新 更多