多语言展示
当前在线:596今日阅读:82今日分享:28

织梦cms注册会员时checkbox信息无法写进数据库

最近在用织梦cms时,发现一个问题,在注册会员第二步完善详细资料时,发现后面的两个复选框checkbox数据无法写进数据库,经过一番分析,终于找到了解决办法,下面分享给遇到同样问题的朋友。
工具/原料

dedecms5.7

方法/步骤
1

这里面我随便选择几个值,然后点击完成注册。然后到数据库查看

2

其他值都写进去了,但发现语言(language)和性格(nature)两个字段的值还是空的,而这两个字段都是checkbox类型数据。

3

问题出现在根目录下的include/filter.inc.php文件中,打开该文件,里面只有一个_FilterAll($fk, &$svar)函数,问题出在粗心的程序员把下面这几句代码    if (!$magic_quotes_gpc) {        $svar = addslashes($svar);    }写到了else{.....}的外面了,而addslashes函数的参数只能是字符串,不能是数组。而checkbox表单提交的正好是以数组形式的数据,这也说明了为什么其他数据没问题,而恰恰这两个checkbox存在问题。

4

可以用几句代码测试下addslashes这个函数。$arr=array('小强','旺财','如花');$arr=addslashes($arr);print_r($arr);

5

测试结果报错了,说明addslashes确实无法作用于数组。

6

解决办法很简单,把    if (!$magic_quotes_gpc) {        $svar = addslashes($svar);    }这几句放到else{...}的范围之类然后保存。

7

经过测试已经正常了,希望对大家有帮助。

注意事项

织梦版本dedecms5.7sp1 UTF-8

推荐信息