首页建站经验 方维购物分享漏洞bug“喜欢分享的会员还喜欢”

方维购物分享漏洞bug“喜欢分享的会员还喜欢”

不知道是客户自身数据的问题还是方维程序的问题,今天有客户反映,在浏览别人的 个人中心->宝贝 这个页面时,点击右边分享的宝贝时,如果该宝贝是被喜欢的,就会出现数据库查询错误: …

不知道是客户自身数据的问题还是方维程序的问题,今天有客户反映,在浏览别人的 个人中心->宝贝 这个页面时,点击右边分享的宝贝时,如果该宝贝是被喜欢的,就会出现数据库查询错误:

该访问链接是:

http://www.xxxxxxx.com/note.php?action=g&sid=12645&id=6757

错误信息:

  • [Type] dbquery_error
  • [1064] You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘) LIMIT 0,20′ at line 1
  • [Query] SELECT share_id,uid,content,collect_count,comment_count,create_time,cache_data FROM share WHERE share_id IN (12654,12651,12649,12647,12644,12600,12599,12495,12493,12491,12489,12486,12485,12484,12481,12480,12478,12476,12475,) LIMIT 0,20

sql语句很明显的错误,是在in()括号中最后一个值后面多了一个“,”号,

这条查询语句的位置在:

core/service/share.service.php文件的 public function getCollectShareByShare($share_id,$num = 20)函数中,

注意下面红色字体

if(count($uids) > 0)
   {
    $share_ids = array();
    $res = FDB::query(‘SELECT GROUP_CONCAT(DISTINCT sgi.share_id
      ORDER BY sgi.share_id DESC SEPARATOR /’,/’) AS share_ids,sgi.uid
     FROM ‘.FDB::table(‘user_collect’).’ AS uc
     INNER JOIN ‘.FDB::table(‘share_goods_index’).’ AS sgi ON sgi.share_id = uc.share_id AND sgi.share_id <> ‘.$share_id.’
     WHERE uc.c_uid IN (‘.implode(‘,’,$uids).’) GROUP BY sgi.uid LIMIT 0,’.$num);
    while($data = FDB::fetch($res))
    {
     $share_ids = explode(‘,’,$data['share_ids']);
     $share_ids[] = (int)current($share_ids);

    }
    $share_ids = array_unique($share_ids); //源代码中,只是过滤掉了数组中的重复值
    $share_ids = array_filter($share_ids);  //这句代码是我后来添加的,过滤掉了数组中的空值,这样程序就可以正常执行了
    if(count($share_ids) > 0)
    {
     $list = FDB::fetchAll(‘SELECT share_id,uid,content,collect_count,comment_count,create_time,cache_data FROM ‘.FDB::table(‘share’).’ WHERE share_id IN (‘.implode(‘,’,$share_ids).’) LIMIT 0,’.$num);
     $list = ShareService::getShareDetailList($list);
    }

 不管这个问题是不是客户由于操作数据库失误导致的,我想都应该对查询得到的数据数组,进行空值过滤。

本文来自网络,不代表1号站长-站长学院|资讯交流平台立场。转载请注明出处: https://www.1cn.cc/jianzhan/jingyan/19366.html
上一篇浅谈网站应该如何使用好nofollw标签
下一篇 搜狗广告联盟帐号被封后处理方法的官方说明
admin

作者: admin

这里可以再内容模板定义一些文字和说明,也可以调用对应作者的简介!或者做一些网站的描述之类的文字或者HTML!

为您推荐

评论列表()

    联系我们

    联系我们

    0898-88888888

    在线咨询: QQ交谈

    邮箱: email@wangzhan.com

    工作时间:周一至周五,9:00-17:30,节假日休息

    关注微信
    微信扫一扫关注我们

    微信扫一扫关注我们

    关注微博
    返回顶部