给用户传入的变量进行转义操作
先看代码实现:
/* 对用户传入的变量进行转义操作。*/ if (!get_magic_quotes_gpc()) { if (!empty($_GET)) { $_GET = addslashes_deep($_GET); } if (!empty($_POST)) { $_POST = addslashes_deep($_POST); } $_COOKIE = addslashes_deep($_COOKIE); $_REQUEST = addslashes_deep($_REQUEST); } /** * 递归方式的对变量中的特殊字符进行转义 * * @access public * @param mix $value * * @return mix */ function addslashes_deep($value) { if (empty($value)) { return $value; } else { return is_array($value) ? array_map('addslashes_deep', $value) : addslashes($value); } }
函数解释:
get_magic_quotes_gpc() :
功能: 取得 PHP 环境变数 magic_quotes_gpc 的值。
语法: long get_magic_quotes_gpc(void);
传回值: 长整数
函式种类: PHP 系统功能
本函式取得 PHP 环境设定的变数 magic_quotes_gpc(GPC, Get/Post/Cookie) 值。传回 0 表示关闭本功能;传回 1 表示本功能开启。当magic_quotes_gpc 开启时,所有的 '(单引号), " (双引号), \(反斜线) 和 空字符会 自动转为含有反斜线的溢出字符。
get_magic_quotes_gpc的功能为: 是否为GET、POST、COOKIE传来的数据中的‘ 单引号 “”双引号 \反斜线 加上反斜线
如果get_magic_quotes_gpc = ON ,则返回1,PHP解析器就会自动为post、get、cookie过来的数据增加转义字符“\”,以确保这些数据不会引起程序,特别 是数据库语句因为特殊字符引起的污染而出现致命的错误。
addslashes() :
功能: 使用反斜线引用字符串
语法: string addslashes ( string str)
返回值: 返回字符串,该字符串为了数据库查询语句等的需要在某些字符前加上了反斜线。这些字符是单引号(')、双引号(")、反斜线()以及(NULL 字符)。