magic_quotes_runtime 与 magic_quotes_gpc

 

magic_quotes_runtime 与 magic_quotes_gpc 这两个函数都是管理是否对数据进行特殊符号转义,但是他们针对的处理对象不同:

magic_quotes_gpc的设定值将会影响通过Get/Post/Cookies获得的数据,magic_quotes_runtime的设定值将会影响从文件中读取的数据或从数据库查询得到的数据。

magic_quotes_runtime

在php.ini的配置文件中,有个布尔值的设置,就是magic_quotes_runtime,当它打开时,php的大部分函数自动的给从外部引入的(包括数据库或者文件)数据中的溢出字符加上反斜线。


当然如果重复给溢出字符加反斜线,那么字符串中就会有多个反斜线,所以这时就要用set_magic_quotes_runtime()与get_magic_quotes_runtime()设置和检测php.ini文件中magic_quotes_runtime状态。


为了使自己的程序不管服务器是什么设置都能正常执行。可以在程序开始用get_magic_quotes_runtime检测设置状态秋决定是否要手工处理,或者在开始(或不需要自动转义的时候)用set_magic_quotes_runtime(0)关掉。

magic_quotes_gpc


magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的'"\加上反斜线。可以用get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线(\)与 NUL(NULL 字符)。

 

不过 magic_quotes_runtime 、magic_quotes_gpc 两个特性 自 PHP 5.3.0 起废弃 ,将自 PHP 5.4.0 起移除。

查看手册:

http://cn2.php.net/manual/zh/info.configuration.php#ini.magic-quotes-gpc

posted @ 2013-07-23 16:20  Gcoder  阅读(214)  评论(0编辑  收藏  举报