深圳网站建设公司创络在去年的旧版本网站后台中添加了统计代码等JS代码管理的功能,最近我们发现客户在使用此功能的时候有的时候会出现添加或者编辑出错的问题,经过分析我们已经彻底解决了这个问题。
问题重现:
由于已经有好几位客户向我们反馈了这个问题,最初技术员以为是客户操作问题,因为大多数客户在使用这个功能的时候是没有问题的。但是后来我们发现在不同的服务器上,这个功能的使用效果不同。于是我们就猜测可能是服务器环境有关。
问题描述:
由于JS代码中有一些常见的特殊字符,例如斜杠、单引号等等,同时为了防止SQL注入攻击,我们的技术员在处理用户提交的数据的时候会处理掉这些特殊字符。我们会使用到的一对函数就是addslashes()和stripslashes(),但是这两个函数的作用会受到magic_quotes_gpc的影响。
问题关键:
magic_quotes_gpc的开启状态直接影响上述函数的作用,如果magic_quotes_gpc的状态为开启的情况下,PHP程序已经默认处理了特殊字符,因此如果此时在使用addslashes去处理就会出错。
解决方案:
使用get_magic_quotes_gpc()函数判断magic_quotes_gpc的状态,根据不同的状态对客户提交的数据采取不同的处理方案。