【问题标题】:Whats the best way to encode form data?编码表单数据的最佳方法是什么?
【发布时间】:2011-09-12 13:57:29
【问题描述】:

我仍在为这个谜题而苦苦挣扎。看看这个jsfiddle 序列化数据正在发送到我的php函数,如下所示:

headline:I'm+still+here!

我需要数据看起来像这样:

headline:I%27m+still+here%21

我需要对我的序列化数据调用 replace 方法并只转换单引号还是有更好的方法?

【问题讨论】:

    标签: php jquery mysql serialization


    【解决方案1】:

    为什么要转义's?根据RFC 3986,撇号是 URL 中的有效字符。据推测,这就是为什么 jQuery 没有为您转义它的原因。

    如果您出于某种原因必须对其进行转义,那么可以 - 使用 replace 方法。

    【讨论】:

    • 如果我将它发送到我的 php 函数并使用 mysql_real_escape_string($headline) 从数据库返回时看起来像这样:我还在这里!
    • 它应该是这样的。 \' 序列告诉 mySQL ' 不是 SQL 语法,它只是您传递给 MySQL 的某些数据内容的一部分。
    • 我该如何防止它像那样将其添加到数据库中?
    • 反斜杠不会出现在数据库中。请阅读本教程以更好地了解正在发生的事情以及这些部分如何组合在一起:tizag.com/mysqlTutorial/mysql-php-sql-injection.php
    • @Paul,您可能在您的 php 配置中启用了 PHP 魔术引号。魔术引号尝试自动转义所有请求数据,然后您将使用 mysql 函数再次转义它。您将需要关闭魔术引号,因为它们不能安全地用于转义 mysql 内容,或者在使用 mysql 函数之前去除斜杠。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-03
    • 2010-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-21
    • 2013-05-17
    相关资源
    最近更新 更多