您的位置:首页 > 编程语言 > PHP开发

php中get_magic_quotes_gpc()用法

2013-10-08 17:44 543 查看
get_magic_quotes_gpc()

php.ini里面magic_quotes_gpc是默认为off的。

也就是说要为了安全起见应该设为on。

而且设为on的话,post get 和cookie传来的string值就可以直接用于sql语句,而不需要用addslashes再添加转义符了。

一个很好的函数,希望对大家有所帮助


function rAddSlashes(&$data)

{

if(!get_magic_quotes_gpc())

{

return is_array($data)?array_map('rAddSlashes',$data):addslashes($data);

}

else

{

Return $data;

}

}

在php的配置文件中,有个布尔值的设置,就是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设置是否自动为GPC(get,post,cookie)传来的数据中的/'/"//加上反斜

线。可以用get_magic_quotes_gpc()检测系统设置。如果没有打开这项设置,可以使用

addslashes()函数添加,它的功能就是给数据库查询语句等的需要在某些字符前加上了反

斜线。这些字符是单引号(/')、双引号(/")、反斜线(//)与 NUL(NULL 字符)。

一般用法如下;

if(!get_magic_quotes_gpc())

{

addslashes($prot);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: