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

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

问题

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

排查前端

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

排查后端

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

<?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”方法我找不到其他问题了

{"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过滤掉了,修改代码如下:

<?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”

{"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"}}


相关文章
|
2月前
|
SQL 运维 Java
记一个折磨了我一天半的 Bug
一杯茶,一根烟,一个 Bug 一天根本改不完。
33 1
|
6月前
|
Shell 开发工具 git
项目出bug,找不到bug,如何拉回之前的版本
项目出bug,找不到bug,如何拉回之前的版本
|
Java
以下代码找bug
以下代码找bug
129 0
|
监控 安全 架构师
抱歉,你测试的项目上线之后bug太多了!
抱歉,你测试的项目上线之后bug太多了!
|
Java 应用服务中间件 Docker
同事嫌我改Bug慢,原来是没掌握这些代码Debug技巧
代码Debug调试是研发工程师日常工作中必不可少的重要组成部分。进行代码Debug调试的目的无非就两个,一个是自我检查代码逻辑是否有问题,便于自己将Bug消灭在测试介入之前;另一个是进行线上问题排查定位,找到实际在跑业务的过程中出现的Bug。
同事嫌我改Bug慢,原来是没掌握这些代码Debug技巧
|
Python
遇到bug不要慌,先发个文章看看
遇到bug不要慌,先发个文章看看
134 0
|
Java 中间件 程序员
最网最全bug定位套路,遇见bug再也不慌了
最网最全bug定位套路,遇见bug再也不慌了
334 0
|
存储 算法 Java
10 个让人头疼的 bug
那个谁,今天又写 bug 了,没错,他说的好像就是我。。。。。。 作为 Java 开发,我们在写代码的过程中难免会产生各种奇思妙想的 bug ,有些 bug 就挺让人无奈的,比如说各种空指针异常,在 ArrayList 的迭代中进行删除操作引发异常,数组下标越界异常等。
10 个让人头疼的 bug