htmlspecialchars和
addslashes和
et_magic_quotes_gpc
这三个玩意好象没有区别,似乎又有区别,不知如何处理三者之间的关系呢
2013年07月06日 V1.60 升级包更新方式:admin文件夹改成你后台目录名,然后补丁包里的所有文件覆盖进去。1.[新增]后台引导页加入非IE浏览器提示,后台部分功能在非IE浏览器下可能没法使用2.[改进]淘客商品管理 首页 列表页 内容页 的下拉项加入颜色来区别不同项3.[改进]后台新增/修改淘客商品,增加淘宝字样的图标和天猫字样图标改成天猫logo图标4.[改进]为统一名称,“分类”改
回复讨论(解决方案)
htmlspecialchars 转换成html实体,偶尔在存入数据库之前把html转为实体存储(一般是富文本编辑的内容)
addslashes 转义特殊符号,一般在查数据库的时候会先转义特殊字符,防止sql注入
get_magic_quotes_gpc 判断magic_quotes_gpc(若开启的话,php会对GET、POST 和 COOKIE 数据自动运行 addslashes)是否开启,防止你二次转义
htmlspecialchars() 函数把一些预定义的字符转换为 HTML 实体。
预定义的字符是:
& (和号) 成为 &
" (双引号) 成为 "
' (单引号) 成为 '
> (大于) 成为 >
addslashes() 函数在指定的预定义字符前添加反斜杠。
默认情况下,PHP 指令 magic_quotes_gpc 为 on,对所有的 GET、POST 和 COOKIE 数据自动运行 addslashes()。不要对已经被 magic_quotes_gpc 转义过的字符串使用 addslashes(),因为这样会导致双层转义。遇到这种情况时可以使用函数 get_magic_quotes_gpc() 进行检测。
et_magic_quotes_gpc 这个应该是
get_magic_quotes_gpc():
查看magic_quotes_gpc值.0=关闭.1=打开
htmlspecialchars 与后两个方法没关系。
而get_magic_quotes_gpc 如果是1,表示GET/POST的数据已经是执行过addslashes的。
如果是0,表示没有执行过addslashes,那就需要用户自己执行addslashes来转义










