一个phpwind 8.0 utf8 系统错误表现为无法注册登录,费老劲调试,发现 data/sql_config.php 文件由于在windows 记事本编辑后导致被自动增加了bom ,前端cookie 输出因为bom 的 原因,导致浏览器无法生成cookie,从而无法登录和注册
在editplus 另存成utf-8 无bom ,上传问题解决
总结: 要多用 linux curl 去查看文件输出
一个phpwind 8.0 utf8 系统错误表现为无法注册登录,费老劲调试,发现 data/sql_config.php 文件由于在windows 记事本编辑后导致被自动增加了bom ,前端cookie 输出因为bom 的 原因,导致浏览器无法生成cookie,从而无法登录和注册
在editplus 另存成utf-8 无bom ,上传问题解决
总结: 要多用 linux curl 去查看文件输出
今天一个客户给我发来ecshop后台导出出现
ERROR 1052 (23000): Column ‘brand_id’ in where clause is ambiguous
经查发现是不同表存在相同字段而在where 语句中未区分造成
测试运行语句
SELECT g.*, b.brand_name as brandname FROM `usason`.`ecs_goods` AS g LEFT JOIN `usason`.`ecs_brand` AS b ON g.brand_id = b.brand_id WHERE is_delete = 0 AND brand_id = ’17’;
修改为
SELECT g.*, b.brand_name as brandname FROM `usason`.`ecs_goods` AS g LEFT JOIN `usason`.`ecs_brand` AS b ON g.brand_id = b.brand_id WHERE is_delete = 0 AND g.brand_id = ’17’;
红色部分注意
那么就只有去查后台程序代码了
发现在admin/includes/lib_main.php 的get_where_sql($filter)的函数中出现了
$where .= isset($filter->brand_id) && $filter->brand_id > 0 ? ” AND brand_id = ‘” . $filter->brand_id . “‘” : ”;
修改为
$where .= isset($filter->brand_id) && $filter->brand_id > 0 ? ” AND g.brand_id = ‘” . $filter->brand_id . “‘” : ”;
问题解决
目前还不知道有其他副作用
好在ecshop命名还算规范
朋友网站phpwind 7.5 sp3出现批量上传文件后上传文件的列表消失,但是文件已经上传上去了,调试后发现没有写入数据库
跟踪代码在 lib/upload/mutiupload.class.php 文件的update函数中加入调试语句,确认没有写入数据库 ,
原因是 $value[‘name’] = pwConvert($value[‘name’], $db_charset, ‘utf-8’); 行有错
经调试 pwConvert 是因为 php没有启用 mbstring 造成,启用后,问题解决