前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【改BUG】项目遇到的奇葩bug

【改BUG】项目遇到的奇葩bug

作者头像
德宏大魔王
发布2023-08-08 15:25:15
1630
发布2023-08-08 15:25:15
举报
文章被收录于专栏:cloud stdiocloud stdio

问题

今天,我的下级代理联系我说,我们的平台,应用服务批量导入后,用户密码含有“0”的都不显示,例如密码是“07121239”但是平台只显示“7121239”,今天做了下排查,本文仅记录一下今天排查的经历

在这里插入图片描述
在这里插入图片描述

排查前端

在前端加了个调试后密码依然是含“0”的,那就说明问题应该在后端

在这里插入图片描述
在这里插入图片描述

排查后端

由于项目是原生php写的,部分代码,就直接通过[说明]跳过,更改之前的部分代码

代码语言:javascript
复制
<?php
'''数据库连接语句'''
$edit_id=$_POST['edit_id'];
$openid=$_POST['openid'];
$db=$_POST['db'];
$sql = "SELECT * FROM $db where id='$edit_id' and daili_openid='$openid'";  
$res =$conn->query($sql);
$result=$res->fetch_assoc();
 if (!$result) {
   die(
         json_encode(
             array(
             'code' => 200,
             'msg' => '查询失败,不存在记录',
             'data' => ''
            
         ),480)
 );
 }
 else{
      die(
         json_encode(
             array(
             'code' => 100,
             'msg' => '查询成功',
             'data' => $result
            
         ),480)
 );
 }




?>

代码返回是一个json,但是数据返回的password是“123456”,于是我重新打印了sql查询的语句,发现数据是“0123456”,说明应该不是sql查询问题,往下排查除了“json_encode”方法我找不到其他问题了

代码语言:javascript
复制
{"code":100,"msg":"\u67e5\u8be2\u6210\u529f","data":{"id":"45","phone":"15**********66","password":"123456","openid":"13*********4","daili_openid":"13*********4","address":"\u7389\u6eaa\u5e02\u7ea2\u5854\u533a","longitude":"102.55156461759","latitude":"24.359801443673","vip_data":"2023-07-10 16:22:03","vip_info":"false"}}

bug修改

大致猜测是因为json_encode()将0过滤掉了,修改代码如下:

代码语言:javascript
复制
<?php
'''数据库连接语句'''
$edit_id=$_POST['edit_id'];
$openid=$_POST['openid'];
$db=$_POST['db'];
$sql = "SELECT * FROM $db where id='$edit_id' and daili_openid='$openid'";  
$res =$conn->query($sql);
$result=$res->fetch_assoc();
if (!$result) {
    $response = array(
        'code' => 200,
        'msg' => '查询失败,不存在记录',
        'data' => ''
    );
} else {
    $response = array(
        'code' => 100,
        'msg' => '查询成功',
        'data' => $result
    );
}

$jsonData = json_encode($response, true);

// 输出 JSON 字符串
die($jsonData);



?>

看下修改后的结果: password显示“0123456”

代码语言:javascript
复制
{"code":100,"msg":"\u67e5\u8be2\u6210\u529f","data":{"id":"45","phone":"15**********66","password":"0123456","openid":"13*********4","daili_openid":"13*********4","address":"\u7389\u6eaa\u5e02\u7ea2\u5854\u533a","longitude":"102.55156461759","latitude":"24.359801443673","vip_data":"2023-07-10 16:22:03","vip_info":"false"}}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2023-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 问题
  • 排查前端
  • 排查后端
  • bug修改
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档