PHP magic_quotes_gpc输入输出自动处理

php 中的 magic_quotes_gpc 是配置在 php.ini 中的,他的作用类似 addslashes(),就是对输入的字符创中的字符进行转义处理。
他可以对$_POST$_GET 以及进行数据库操作的 sql 进行转义处理,防止 sql 注入。

on|off

  • 对于 PHP magic_quotes_gpc=on 的情况:

我们可以不对输入和输出数据库的字符串数据作,addslashes()stripslashes()的操作,数据也会正常显示。

如果此时你对输入的数据作了 addslashes()处理,那么在输出的时候就必须使用 stripslashes()去掉多余的反斜杠。

  • 对于 PHP magic_quotes_gpc=off 的情况:

必须使用 addslashes()对输入数据进行处理,但并不需要使用 stripslashes()格式化输出,因为 addslashes()并未将反斜杠一起写入数据库,只是帮助 mysql 完成了 sql 语句的执行。

程序中可以通过 get_magic_quotes_gpc 来获取 magic_quotes_gpc 环境变量的值,从而判断是否使用 addslashes()stripslashes()

addslashes|stripslashes

  • addslashes – 使用反斜线引用字符串

描述:string addslashes ( string str)

返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(’)、双引号(”)、反斜线(’’)与 NUL(NULL 字符)

  • stripslashes – 函数删除由 addslashes() 函数添加的反斜杠。

描述:string addslashes ( string str)

返回字符串,该函数可用于清理从数据库中或者从 HTML 表单中取回的数据